tsql

31/03/2005 - 21:25 por Gustavo | Informe spam
SELECT CASE
WHEN LEN(CAST(CAMPO AS CHAR(100))) > LEN(CAST(CAMPO2 AS CHAR(100)))
THEN CAMPO ELSE CAMPO2 END FROM TABLA

esto asi es correcto o hay algo mejor para hacer??

muchas gracias por adelantado.

Preguntas similare

Leer las respuestas

#1 Maxi
31/03/2005 - 21:53 | Informe spam
Yo lo veo bien


Salu2
Maxi


"Gustavo" escribió en el mensaje
news:
SELECT CASE
WHEN LEN(CAST(CAMPO AS CHAR(100))) > LEN(CAST(CAMPO2 AS CHAR(100)))
THEN CAMPO ELSE CAMPO2 END FROM TABLA

esto asi es correcto o hay algo mejor para hacer??

muchas gracias por adelantado.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
31/03/2005 - 21:59 | Informe spam
Gustavo,

Por que haces un CAST, de que tipo son las columnas campo y campo2?

Algo quiero que hacer notar y es que la funcion LEN no cuenta los caracteres
blancos o espacio a la derecha. Puedes usar la funcion DATALENGTH que
devuelve el numero de bytes, por lo que para tipos char / varchar / text
seria el numero de caracteres y para los tipos nchar / nvarchar y ntext
devolveria dos bytes por cada caracter.

Ejemplo:

declare @v1 char(5), @v2 nchar(5)

set @v1 = 'M' + space(4)
set @v2 = N'M' + space(4)

select len(@v1), datalength(@v1), datalength(@v2)
go


AMB


"Gustavo" wrote:

SELECT CASE
WHEN LEN(CAST(CAMPO AS CHAR(100))) > LEN(CAST(CAMPO2 AS CHAR(100)))
THEN CAMPO ELSE CAMPO2 END FROM TABLA

esto asi es correcto o hay algo mejor para hacer??

muchas gracias por adelantado.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida