Oracle
 sql >> Base de données >  >> RDS >> Oracle

CASE vs DECODE

Il y a une grande différence entre DECODE et CASE et cela a à voir avec la façon dont NULLs sont comparés. DECODE renverra "true" si vous comparez NULL à NULL . CASE Ne fera pas. Par exemple :

DECODE(NULL, NULL, 1, 0)

renverra '1'.

CASE NULL
    WHEN NULL THEN 1
    ELSE 0
END

renverra '0'. Vous auriez à l'écrire comme suit :

CASE
    WHEN NULL IS NULL THEN 1
    ELSE 0
END