Oracle 기준으로 다음 SQL을 실행한 결과로 옳은 것은?[회원]회… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 3회
Oracle 기준으로 다음 SQL을 실행한 결과로 옳은 것은?

[회원]

회원번호등급가입일
M01G2026-01-05
M02S2026-01-09
M03(null)2026-02-11
M04G2026-02-20
M05B2026-03-02
SELECT 회원번호,
       DECODE(등급, NULL, 'N', 'G', 'Y', 'X') AS D,
       CASE 등급 WHEN NULL THEN 'N'
                 WHEN 'G'  THEN 'Y'
                 ELSE 'X' END AS C
  FROM 회원
 ORDER BY 회원번호;
1
회원번호DC
M01YY
M02XX
M03NX
M04YY
M05XX
2
회원번호DC
M01YY
M02XX
M03XX
M04YY
M05XX
3
회원번호DC
M01YY
M02XX
M03XN
M04YY
M05XX
4
회원번호DC
M01YY
M02XX
M03NN
M04YY
M05XX
해설

DECODE 는 비교 대상과 검색값이 모두 NULL 이면 같다고 보므로 M03 의 D 는 'N' 이 되지만, 단순 CASE 의 WHEN NULL 은 등급 = NULL 비교라 결과가 UNKNOWN 이어서 ELSE 의 'X' 가 나온다.

나머지 회원은 G 면 'Y', S·B 면 'X' 로 두 열이 같다.

  • CASE 도 NULL 을 잡는다고 본 결과로 M03 의 C 가 틀렸다.
  • DECODE 도 NULL 을 못 잡는다고 본 결과로 M03 의 D 가 틀렸다.
  • 두 함수의 NULL 처리를 서로 뒤바꾼 결과다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 3회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기