SQL Server - reverse cambia la longitud de la cadena

 
Vista:

reverse cambia la longitud de la cadena

Publicado por Álvaro (2 intervenciones) el 03/03/2011 14:56:41
Es curioso pero obtengo un resultado mayor que 0 al hacer esta consulta:

select count(*) from tabla where len(reverse(nombre))<>len(nombre)

Concretamente obtengo un 15 como resultado :-s

¿Alguien sabe a que se puede deber esto?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:reverse cambia la longitud de la cadena

Publicado por Álvaro (2 intervenciones) el 03/03/2011 15:19:52
Ya me respondo yo mismo:

La función len() no cuenta los espacios al final de una cadena pero sí los que hay al principio.

len('abc ') = 3
len(' cba') = 4

Para solucionarlo hay que emplear DATALENGTH() que cuenta todos los caracteres de cualquier cadena y así siempre se cumple que

DATALENGTH(reverse(cadena)) = DATALENGTH(cadena)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar