ORDER BY에서의 CASE 활용
Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨 — 27개 중 2번째.
CASE는 SELECT만을 위한 것이 아닙니다. ORDER BY 내부에 배치하여 컬럼만으로는 표현할 수 없는 사용자 정의 규칙에 따라 행을 정렬할 수 있습니다.
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
END더 짧은 형식을 확인해 보세요: CASE column WHEN value THEN .... 이것은 WHEN column = value와 동일합니다. 더 깔끔하게 읽히는 쪽을 사용하세요.
챌린지
쉬움사용 가능한 테이블 및 컬럼:
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
title과 priority를 반환하되, 'critical'이 가장 먼저 오고, 그다음 'high', 'low' 순서로 정렬하며 그 외의 값은 마지막에 오도록 하세요. 동일한 우선순위 내에서는 title을 기준으로 알파벳 순으로 정렬하세요.
치트 시트
사용자 정의 규칙에 따라 정렬하려면 ORDER BY 내부에서 CASE를 사용하세요:
SELECT name, status
FROM tickets
ORDER BY
CASE status
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'normal' THEN 3
ELSE 4
END단축 형식인 CASE column WHEN value THEN ...은 CASE WHEN column = value THEN ...과 동일합니다.
직접 해보기
SELECT title, priority
FROM tasks
ORDER BY
-- ...
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.