Jest jedna duża różnica między DECODE
i CASE
i ma to związek z tym, jak NULLs
są porównywane. DECODE
zwróci "true" jeśli porównasz NULLs
na NULLs
. CASE
nie będzie. Na przykład:
DECODE(NULL, NULL, 1, 0)
zwróci '1'.
CASE NULL
WHEN NULL THEN 1
ELSE 0
END
zwróci '0'. Musiałbyś napisać to jako:
CASE
WHEN NULL IS NULL THEN 1
ELSE 0
END