문제
다음 중 COALESCE(A, B, C)와 동일한 결과를 반환하는 것은?
① NVL(NVL(A, B), C) ② NVL2(A, B, C) ③ DECODE(A, NULL, DECODE(B, NULL, C, B), A) ④ NULLIF(A, B)
정답
1번
해설
COALESCE(A, B, C)는 첫 번째로 NULL이 아닌 값을 반환합니다. ① NVL(NVL(A, B), C)는 내부 NVL(A, B)가 A가 NULL이면 B를 반환하고, 외부 NVL이 그 결과가 NULL이면 C를 반환하므로 COALESCE와 완전히 동일한 로직입니다. ② NVL2(A, B, C)는 A가 NULL이 아니면 B를, NULL이면 C를 반환하므로 완전히 다른 로직입니다. ③ DECODE(A, NULL, DECODE(B, NULL, C, B), A)는 중첩 구조이지만 COALESCE와는 다른 결과를 반환할 수 있습니다. ④ NULLIF(A, B)는 A와 B가 같으면 NULL을 반환하는 함수로 용도가 완전히 다릅니다.