SQLDSQL 기본함수난이도 2MCQ

SQLD 함수 기출문제 #435

문제

다음 SQL의 결과는? (Oracle)

SQL
WITH temp AS ( SELECT 'A' col1, 10 col2 FROM DUAL UNION ALL SELECT 'B', NULL FROM DUAL UNION ALL SELECT NULL, 20 FROM DUAL ) SELECT CASE WHEN col1 IS NULL THEN NVL2(col2, 'HAS_VAL', 'NO_VAL') ELSE COALESCE(col1, 'DEFAULT') END result FROM temp;

① 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' 반환. ②는 세 번째 행 결과가 틀림. ③은 두 번째 행 결과가 틀림. ④는 첫 번째 행 결과가 틀림.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] 함수 SQL 기본 기출 #435 | sqldpass