다음 SQL의 실행 결과로 옳은 것은?[회원]회원번호휴대폰이메일포인트1… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

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

[회원]

회원번호휴대폰이메일포인트
1010-11kim@a.kr3500
2(null)lee@a.kr1200
3(null)(null)(null)
4010-44(null)800
SELECT 회원번호,
       COALESCE(휴대폰, 이메일, '미등록') AS 연락처,
       CASE WHEN 포인트 >= 1000 THEN 'VIP'
            WHEN 포인트 >= 3000 THEN 'VVIP'
            ELSE '일반' END AS 등급
  FROM 회원
 ORDER BY 회원번호;
1
회원번호연락처등급
1010-11VIP
2미등록VIP
3미등록일반
4010-44일반
2
회원번호연락처등급
1010-11VVIP
2lee@a.krVIP
3미등록일반
4010-44일반
3
회원번호연락처등급
1010-11VIP
2lee@a.krVIP
3미등록일반
4010-44일반
4
회원번호연락처등급
1010-11VIP
2lee@a.krVIP
3미등록(null)
4010-44일반
해설

COALESCE 는 왼쪽부터 처음 만난 NOT NULL 값을 돌려주므로 2는 이메일, 3은 '미등록'이 되고, 검색 CASE 는 처음 참인 WHEN 에서 멈춰 3500 포인트인 1도 VIP 가 된다.

포인트가 NULL 인 3은 두 비교가 모두 UNKNOWN 이라 ELSE 의 '일반'을 받는다.

  • 더 높은 조건을 찾아 VVIP 를 주지 않으며, 앞선 WHEN 이 먼저 참이 된다.
  • ELSE 가 있으므로 NULL 비교 행도 NULL 이 아니라 '일반'이다.
  • 휴대폰이 NULL 이면 다음 인수인 이메일을 보므로 2는 '미등록'이 아니다.

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

이어서 풀어보기

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