Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

CASO vs. DECODE


Há uma grande diferença entre DECODE e CASE e tem a ver com como NULLs são comparados. DECODE retornará "true" se você comparar NULL para NULL . CASE não vou. Por exemplo:
DECODE(NULL, NULL, 1, 0)

retornará '1'.
CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

retornará '0'. Você teria que escrevê-lo como:
CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END