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