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