sql >> Base de Datos >  >> RDS >> Oracle

CASO vs DECODIFICACIÓN

Hay una gran diferencia entre DECODE y CASE y tiene que ver con cómo NULLs se comparan. DECODE devolverá "verdadero" si compara NULL a NULL . CASE no lo haré Por ejemplo:

DECODE(NULL, NULL, 1, 0)

devolverá '1'.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

devolverá '0'. Tendrías que escribirlo como:

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END