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