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. Используйте ту, которая читается понятнее.
Задание
ЛегкоДоступные таблицы и столбцы:
<strong>tasks</strong>:<strong>id</strong>,<strong>title</strong>,<strong>priority</strong>
Верните title и priority, отсортированные так, чтобы 'critical' шел первым, затем 'high', затем 'low', а всё остальное — в конце. При одинаковом приоритете отсортируйте по title в алфавитном порядке.
Попробуйте сами
SELECT title, priority
FROM tasks
ORDER BY
-- ...
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.