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와 동일합니다. 더 깔끔하게 읽히는 쪽을 사용하세요.
챌린지
쉬움사용 가능한 테이블 및 열:
tasks:id,title,priority
title과 priority를 반환하되, 'critical'이 먼저 오고 그다음 'high', 그다음 'low'가 오도록 정렬하며, 그 외의 값은 마지막에 오도록 하세요. 동일한 우선순위 내에서는 title을 알파벳순으로 정렬하세요.
직접 해보기
SELECT title, priority
FROM tasks
ORDER BY
-- 아래의 플레이스홀더 정렬을 CASE 표현식으로 교체하여
-- 작업에서 설명한 방식으로 행의 순위를 매긴 다음, 동점을 알파벳순으로 끊으세요
id
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
심화 과정의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드