sql >> Base de Datos >  >> RDS >> Sqlserver

Función LEN que no incluye espacios finales en SQL Server

Esto está claramente documentado por Microsoft en MSDN en http://msdn.microsoft.com/en-us/library/ms190329(SQL.90).aspx, que establece que LEN "devuelve el número de caracteres de la expresión de cadena especificada, excluyendo espacios en blanco finales". Sin embargo, es un detalle fácil de pasar por alto si no se tiene cuidado.

En su lugar, debe usar la función DATALENGTH; consulte http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx, que "devuelve la cantidad de bytes utilizados para representar cualquier expresión".

Ejemplo:

SELECT 
    ID, 
    TestField, 
    LEN(TestField) As LenOfTestField,           -- Does not include trailing spaces
    DATALENGTH(TestField) As DataLengthOfTestField      -- Shows the true length of data, including trailing spaces.
FROM 
    TestTable