Pregunta

¿Cuál es la diferencia entre len () y una longitud de datos () en SQL Server 2005?

¿Fue útil?

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:

http://msdn.microsoft.com/en-us/library/ ms190329.aspx

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top