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