다음 SQL의 실행 결과로 옳은 것은?[수강생]번호이름레벨점수1하늘중급… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

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

[수강생]

번호이름레벨점수
1하늘중급80
2보람고급70
3구름초급95
4별빛고급90
5노을(null)85
6새벽중급80
SELECT 이름, 점수
  FROM 수강생
 ORDER BY CASE 레벨 WHEN '고급' THEN 1
                   WHEN '중급' THEN 2
                   ELSE 3 END,
          점수 DESC, 이름;
1
이름점수
별빛90
보람70
새벽80
하늘80
구름95
노을85
2
이름점수
구름95
별빛90
노을85
새벽80
하늘80
보람70
3
이름점수
별빛90
보람70
하늘80
새벽80
구름95
노을85
4
이름점수
보람70
별빛90
새벽80
하늘80
노을85
구름95
해설

첫 정렬 키가 CASE 식이라 고급(1), 중급(2), 나머지(3) 순으로 묶이고, 레벨이 NULL 인 노을도 ELSE 로 3 이 되어 초급 구름과 함께 맨 뒤에 온다.

같은 묶음 안에서는 점수 DESC, 점수가 같은 새벽·하늘은 이름 오름차순으로 정렬되며 SELECT 목록에 없는 레벨도 정렬 키로 쓸 수 있다.

  • 점수를 오름차순으로 보면 보람이 별빛보다 앞서게 된다.
  • 동점에서 이름 오름차순이면 새벽이 하늘보다 먼저 온다.
  • CASE 키를 무시하고 점수만 보면 구름이 맨 앞에 오게 된다.

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

이어서 풀어보기

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