문제
아래 CASE 표현식과 같은 결과를 반환하는 함수로 가장 적절한 것은?
SQLCASE WHEN col1 = 'X' THEN NULL ELSE col1 END
① NVL(col1, 'X') ② NULLIF(col1, 'X') ③ COALESCE(col1, 'X') ④ NVL2(col1, NULL, 'X')
정답
2번
해설
정답: 2. NULLIF(col1, 'X')는 col1과 'X'가 같으면 NULL을 반환하고, 다르면 col1을 반환한다.
오답 풀이
- 1번: NVL은 col1이 NULL이면 대체값을 반환한다.
- 2번: CASE 표현식과 같은 의미이다.
- 3번: COALESCE는 첫 번째 NULL이 아닌 값을 반환한다.
- 4번: NVL2는 첫 번째 인자의 NULL 여부에 따라 두 번째 또는 세 번째 인자를 반환한다.
보충 개념 NULLIF(expr1, expr2)는 두 값이 같으면 NULL, 다르면 expr1을 반환한다. 특정 값과 같을 때 NULL로 바꾸는 경우 유용하다.