CASE в ORDER BY
Часть раздела Продвинутый уровень путешествия по SQL на Coddy. Урок 2 из 27.
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