문제
아래 SQL에 대한 결과로 알맞은 것은?
SQLSELECT CASE WHEN 상품구분 = 'A' THEN '취급' WHEN 상품구분 = 'B' THEN '보류' ELSE '취급안함' END AS 처리결과 FROM 상품;
상품구분이 'C'인 행의 처리결과는?
① 취급 ② 보류 ③ 취급안함 ④ NULL
정답
3번
해설
정답: 3. CASE 조건 중 상품구분='C'에 해당하는 WHEN이 없으므로 ELSE 절의 '취급안함'이 반환된다.
오답 풀이
- 1번: 'A'일 때 반환되는 값이다.
- 2번: 'B'일 때 반환되는 값이다.
- 3번: 조건에 해당하지 않으므로 ELSE 값이 반환된다.
- 4번: ELSE가 있으므로 NULL이 아니라 '취급안함'이다.
보충 개념 CASE 표현식은 조건을 위에서부터 평가하고 처음 TRUE인 결과를 반환한다. 일치하는 WHEN이 없고 ELSE가 있으면 ELSE 값을 반환한다.