Er is één groot verschil tussen DECODE en CASE en het heeft te maken met hoe NULLs worden vergeleken. DECODE geeft "true" terug als je NULL vergelijkt naar NULL . CASE zal niet. Bijvoorbeeld:
DECODE(NULL, NULL, 1, 0)
geeft '1' terug.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
geeft '0' terug. Je zou het moeten schrijven als:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END