SQL - Problemas con un Select con la función Case

 
Vista:

Problemas con un Select con la función Case

Publicado por Lluri (9 intervenciones) el 23/04/2001 14:27:12
A ver si alguien me puede ayudar con un problemilla que tengo con una Select con la función Case.

El Select que me da problemas, simplificado, es el siguiente:

SELECT
CASE WHEN LIBROS.LibTi1 IS NULL THEN SPACE(40)
WHEN 4 - LEN(LTRIM(CONVERT(CHAR, LIBROS.LibTi1)))
> 0 THEN RTRIM(LTRIM(CONVERT(CHAR, LIBROS.LibTi1)))
+ SPACE(4 - LEN(LTRIM(CONVERT(CHAR, LIBROS.LibTi1))))
ELSE RTRIM(SUBSTRING(LTRIM(CONVERT(CHAR,
LIBROS.LibTi1)), 1, 4)) END
FROM LIBROS INNER JOIN
EDITORIA ON (LIBROS.EDICOD = EDITORIA.EDICOD)

El problema que tengo es que cuando Libros.LibTi1 es Nulo no me pone los 40 espacios. Parece ser que además de entrar en el primer Case también entra en el segundo, donde se quitan parte de los espacios. ¿Como puede ser eso?

He probado de poner en el segundo Case una condición que excluya la anterior, es decir, un Is Not Null; pero siguen sin funcionar ¿?

Gracias por la seguro que útil ayuda.
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:Problemas con un Select con la función Case

Publicado por pako (3 intervenciones) el 24/04/2001 18:57:32
select cast('Venta' as varchar(20)) as concepto,cvetda,numdep,
cast(null as double precision) as cargos,
sum(ppublico) as abonos
from pvrenpag
where fecha = '2001-1-23'
group by cvetda,numdep
having sum(ppublico) > 0
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

RE:Problemas con un Select con la función Case

Publicado por irma (7 intervenciones) el 24/04/2001 19:40:24
parece que no te reconociera el is null y pasara al segundo case, no se por que no preguntas en ves de si es nulo si el LEN(LTRIM(CONVERT(CHAR, LIBROS.LibTi1))) = 0
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