Ada satu perbedaan besar antara DECODE dan CASE dan itu ada hubungannya dengan bagaimana NULLs dibandingkan. DECODE akan mengembalikan "benar" jika Anda membandingkan NULL ke NULL . CASE tidak akan. Misalnya:
DECODE(NULL, NULL, 1, 0)
akan mengembalikan '1'.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
akan mengembalikan '0'. Anda harus menulisnya sebagai:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END