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