문제
다음 SQL의 결과는? (Oracle)
SQLSELECT CASE WHEN STATUS = 'Y' THEN CASE WHEN GRADE = 1 THEN '우수' ELSE '보통' END ELSE '대기' END FROM (SELECT 'Y' AS STATUS, 3 AS GRADE FROM DUAL);
① 우수 ② 보통 ③ 대기 ④ NULL
정답
2번
해설
서브쿼리에서 STATUS='Y', GRADE=3 이 제공됩니다. 외부 CASE에서 STATUS='Y'가 참이므로 내부 CASE로 진입하고, 내부 CASE에서 GRADE=3은 1과 다르므로 ELSE 절의 '보통'이 반환됩니다. 따라서 정답은 ②입니다.