Der er én stor forskel mellem DECODE
og CASE
og det har at gøre med hvordan NULLs
sammenlignes. DECODE
vil returnere "true", hvis du sammenligner NULL
til NULL
. CASE
vil ikke. For eksempel:
DECODE(NULL, NULL, 1, 0)
vil returnere '1'.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
vil returnere '0'. Du skal skrive det som:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END