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