문제
아래 쿼리의 결과값으로 가장 적절한 것은?
| C1 | C2 | C3 |
|---|---|---|
| 1 | 2 | 3 |
| NULL | 2 | 3 |
| NULL | NULL | 3 |
SQLSELECT SUM(COALESCE(C1, C2, C3)) FROM TAB1;
① 0 ② 1 ③ 6 ④ 14
정답
3번
해설
정답: 3. COALESCE는 첫 번째 NULL이 아닌 값을 반환하므로 각 행의 값은 1, 2, 3이고 합계는 6이다.
오답 풀이
- 1번: NULL을 모두 0으로 처리한 값이 아니다.
- 2번: 첫 번째 행만 계산한 값이다.
- 3번: 1 + 2 + 3 = 6으로 올바르다.
- 4번: 모든 컬럼 값을 단순 합산한 값과 혼동한 것이다.
보충 개념 COALESCE(expr1, expr2, ...)는 왼쪽부터 검사하여 첫 번째 NULL이 아닌 값을 반환한다. NVL보다 여러 인자를 처리할 수 있다.