문제
다음 SQL의 결과는? (Oracle)
SQLSELECT CASE WHEN NVL2(NULL, 'A', 'B') = 'B' THEN CASE WHEN NULLIF('TEST', 'TEST') IS NULL THEN 'SUCCESS' ELSE 'FAIL' END ELSE 'ERROR' END AS RESULT FROM DUAL;
① SUCCESS ② FAIL ③ ERROR ④ NULL
정답
1번
해설
NVL2(NULL, 'A', 'B')는 첫 번째 인수가 NULL이므로 세 번째 인수 'B'를 반환합니다. 'B' = 'B'는 TRUE이므로 내부 CASE로 진입합니다. NULLIF('TEST', 'TEST')는 두 값이 같으므로 NULL을 반환하고, IS NULL 조건이 TRUE가 되어 'SUCCESS'를 반환합니다.