Det finns en stor skillnad mellan DECODE och CASE och det har att göra med hur NULLs jämförs. DECODE returnerar "true" om du jämför NULL till NULL . CASE ska inte. Till exempel:
DECODE(NULL, NULL, 1, 0)
returnerar '1'.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
kommer att returnera '0'. Du måste skriva det som:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END