Có một sự khác biệt lớn giữa DECODE và CASE và nó liên quan đến cách thức NULLs được so sánh. DECODE sẽ trả về "true" nếu bạn so sánh NULL thành NULL . CASE sẽ không. Ví dụ:
DECODE(NULL, NULL, 1, 0)
sẽ trả về '1'.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
sẽ trả về '0'. Bạn sẽ phải viết nó là:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END