문제
다음 SQL의 결과는? (Oracle)
SQLSELECT CASE WHEN STATUS = 'ACTIVE' THEN CASE WHEN PRIORITY = 'HIGH' THEN 'URGENT' ELSE 'NORMAL' END ELSE 'INACTIVE' END AS RESULT FROM DUAL -- STATUS='ACTIVE', PRIORITY='LOW'
① URGENT ② NORMAL ③ INACTIVE ④ NULL
정답
2번
해설
외부 CASE: STATUS='ACTIVE'이므로 내부 CASE 실행. 내부 CASE: PRIORITY='LOW'는 'HIGH'와 불일치하므로 ELSE 절의 'NORMAL' 반환. 중첩 CASE문에서 조건이 맞지 않으면 각 단계의 ELSE가 실행됨.