정처LAB 자체 제작내용 검수 완료2026 SQLD 기초 개념 문제 · SQL 기본 및 활용 · 49번
Oracle에서 PRODUCT의 두 행이 각각 (discount, promo)=(NULL, 1200), (NULL, NULL)이다. SELECT COALESCE(discount, promo, 0) AS price_adj FROM product ORDER BY id;의 결과는?
1
NULL, NULL
오답 이유COALESCE는 모든 인자가 NULL일 때만 NULL을 반환한다. 각 행에 마지막 인자 0이 있어 결과가 모두 NULL이 되지 않는다.
2
0, 0
오답 이유첫 행에서는 두 번째 인자 promo=1200이 첫 번째 NULL이 아닌 값이므로 0까지 진행하지 않는다.
3
NULL, 0
오답 이유첫 행의 discount가 NULL이어도 다음 인자 promo를 평가하므로 첫 결과가 NULL로 남지 않는다.
4
1200, 0
정답 근거첫 행은 discount를 건너뛰고 promo 1200을, 둘째 행은 두 NULL을 건너뛰고 0을 반환한다.
정답·상세해설
정답 4번
COALESCE는 왼쪽부터 평가해 처음 만나는 NULL이 아닌 값을 반환한다. 첫 행은 1200, 둘째 행은 마지막 기본값 0이 선택된다.