Es gibt einen großen Unterschied zwischen DECODE
und CASE
und es hat damit zu tun, wie NULLs
verglichen werden. DECODE
gibt "true" zurück, wenn Sie NULL
vergleichen auf NULL
. CASE
wird nicht. Zum Beispiel:
DECODE(NULL, NULL, 1, 0)
gibt '1' zurück.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
gibt '0' zurück. Sie müssten es schreiben als:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END