Mezi DECODE
je jeden velký rozdíl a CASE
a souvisí to s tím, jak NULLs
se porovnávají. DECODE
vrátí "true", pokud porovnáte NULL
na NULL
. CASE
nebude. Například:
DECODE(NULL, NULL, 1, 0)
vrátí '1'.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
vrátí '0'. Museli byste to napsat jako:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END