SQL - Explicación más detallada del problema

 
Vista:

Explicación más detallada del problema

Publicado por Lluri (9 intervenciones) el 03/05/2001 12:29:17
La verdad es que no me expliqué muy bien. Volvamos a intentarlo ;-P

Imaginemos el siguiente Select:

SELECT CASE WHEN LIBROS.LibTit IS NULL THEN SPACE(10)
ELSE (CASE WHEN LIBROS.LibTit = '1' THEN LTRIM(LIBROS.LibTit) ELSE
LTRIM(LIBROS.LibTit) END) END
FROM LIBROS

Este select no tiene mucha lógica pero es un Select que simplifica lo que me está pasando.

Imaginemos un registro de la tabla libros que tiene en el campo LibTit el valor nulo. Según este select debería poner 10 espacios. Pero no es así. Lo que parece hacer es select es:

- Entra en el primer Case y pone 10 espacios.
- Entra en el primer Case anidado dentro del Else. Y no me preguntes porque!!!!!! Al entrar aquí lo que hace es quitarle los espacios que había puesto anteriormente.

Se que entra por el primer case dentro del else porque si en lugar pongo LTRIM(Libros.LibTit) pongo Libros.LibTit; no le quita los espacios.
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