Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2009, 01:05
w3ah
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Case en Oracle

Buenas

Tengo un problemilla con un case, resulta que tengo tres campos varchar2 (campo1, campo2 y campo3) y este select:

Código:
SELECT CASE ( NVL (campo1, '') || NVL (campo2, '') || NVL (campo3, ''))
      WHEN '' 
            THEN
              'Vacío'
      ELSE
               'Lleno'
END as valor FROM TABLA
Resulta que en las filas que los tres campos están a NULL, no entra en 'Vacío' y si lo hace en 'Lleno'
Sin embargo entra en 'Vacío' si modifico la SQL de la siguiente forma:

Código:
SELECT CASE ( NVL (campo1, 'a') || NVL (campo2, 'b') || NVL (campo3, 'c'))
      WHEN 'abc' 
            THEN
              'Vacío'
      ELSE
               'Lleno'
END as valor FROM TABLA

¿Por qué sucede esto?

Última edición por w3ah; 24/08/2009 a las 01:50