En SQL Server 2005, ¿cuál es la diferencia entre len () y una longitud de datos ()?
-
05-09-2019 - |
Pregunta
¿Cuál es la diferencia entre len () y una longitud de datos () en SQL Server 2005?
Solución
DATALEN devolverá el número de bytes que se utilizan para almacenar el valor:
http://msdn.microsoft.com/en -US / library / ms173486 (SQL.90) .aspx
LEN devolverá el número de caracteres de una cadena. Dado que una cadena puede utilizar caracteres individuales o de doble byte, esto difiere de DATALENGTH en que siempre obtendrá 1, no importa cuánto tiempo un solo carácter es:
Otros consejos
DATALENGTH devuelve la longitud de la cadena en bytes, incluyendo los espacios finales. LEN devuelve la longitud en caracteres, excluyendo espacios finales. Por ejemplo,
SELECT LEN ( 'cadena'), LEN ( 'cadena'), DATALENGTH ( 'cadena'), DATALENGTH ( 'cadena'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')
devolverá 6, 6, 6, 9, 6, 6, 12, 18
El Len () recortará (quitar espacios finales) de los datos.
La función DATALENGTH () no hace
Ejemplos: Seleccionar Len ( 'Test') - esto devolverá 4
Seleccione DATALENGTH ( 'Test') - esto devolverá 5
ADEMÁS (agregado de otras respuestas fantásticas y útiles):
DATALENGTH devuelve la longitud de la cadena en bytes, incluyendo los espacios finales http://msdn.microsoft.com/en-us /library/ms173486(SQL.90).aspx
LEN devuelve la longitud en caracteres, excluyendo espacios finales http://msdn.microsoft.com/en-us/library/ms190329. aspx
Desde cuerdas pueden consistir en una o 2 bytes (Unicode), los resultados de usar ya sea variará dependiendo de tanto el tipo de datos de la cadena y si hay espacios finales en la cadena
Por ejemplo,
SELECT LEN ( 'cadena'), LEN ( 'cadena'), DATALENGTH ( 'cadena'), DATALENGTH ( 'cadena'), LEN (N'string '), LEN (N'string '), DATALENGTH (N'string '), DATALENGTH (N'string ')
Volverá 6, 6, 6, 7, 6, 6, 12, 14
Con respecto a cadenas datalength () devuelve el número de bytes y len () devuelve un valor entero para el número de caracteres.