문제
고객 등급을 우선순위에 따라 VVIP, VIP 순서로 정렬하려고 한다. 가장 적절한 ORDER BY 표현은?
① ORDER BY CASE 등급 WHEN 'VVIP' THEN 1 WHEN 'VIP' THEN 2 ELSE 3 END ② ORDER BY 등급 ASC ③ ORDER BY 등급 DESC ④ ORDER BY CASE 등급 WHEN 'VIP' THEN 1 WHEN 'VVIP' THEN 2 ELSE 3 END
정답
1번
해설
정답: 1. VVIP를 1, VIP를 2로 매핑하면 VVIP가 VIP보다 먼저 정렬된다.
오답 풀이
- 1번: 원하는 사용자 정의 정렬 순서를 정확히 표현한다.
- 2번: 문자열 오름차순은 업무 우선순서와 다를 수 있다.
- 3번: 문자열 내림차순도 업무 우선순서와 다를 수 있다.
- 4번: VIP가 VVIP보다 먼저 정렬된다.
보충 개념 업무상 정렬 순서가 문자 순서와 다를 때는 CASE 표현식을 ORDER BY에 사용한다. 등급, 상태값, 우선순위 정렬에서 자주 활용된다.