문제
다음 SQL의 결과는? (Oracle)
① A, B, HAS_VAL
② A, B, NO_VAL
③ A, DEFAULT, HAS_VAL
④ DEFAULT, B, HAS_VAL
정답
1번
해설
첫 번째 행: col1='A'이므로 ELSE절 실행, COALESCE('A', 'DEFAULT')는 'A' 반환. 두 번째 행: col1='B'이므로 ELSE절 실행, COALESCE('B', 'DEFAULT')는 'B' 반환. 세 번째 행: col1=NULL이므로 WHEN절 실행, NVL2(20, 'HAS_VAL', 'NO_VAL')는 col2가 NULL이 아니므로 'HAS_VAL' 반환. ②는 세 번째 행 결과가 틀림. ③은 두 번째 행 결과가 틀림. ④는 첫 번째 행 결과가 틀림.