문제
다음 두 SQL 중 동일한 결과를 반환하는 것은?
SQLA: SELECT CASE WHEN DEPT='IT' THEN 'TECH' ELSE DEPT END FROM EMPLOYEE;
① DECODE(DEPT, 'IT', 'TECH') ② DECODE(DEPT, 'IT', 'TECH', DEPT) ③ NVL(DEPT, 'TECH') ④ COALESCE(DEPT, 'IT', 'TECH')
정답
2번
해설
CASE WHEN DEPT='IT' THEN 'TECH' ELSE DEPT END는 DEPT가 'IT'이면 'TECH'를, 그렇지 않으면 원래 DEPT 값을 반환합니다. DECODE(DEPT, 'IT', 'TECH', DEPT)는 동일한 로직으로, DEPT가 'IT'이면 'TECH', 그렇지 않으면 DEPT를 반환합니다. ①번은 ELSE 부분이 NULL이 되고, ③번과 ④번은 전혀 다른 함수입니다.