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.
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


0