Menu
Coddy logo textTech

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. Используйте ту, которая читается понятнее.

challenge icon

Задание

Легко

Доступные таблицы и столбцы:

  • tasks: id, title, priority

Верните title и priority, расположив их в порядке, при котором сначала идёт 'critical', затем 'high', затем 'low', а всё остальное — в конце. В пределах одного приоритета отсортируйте по title в алфавитном порядке.

Попробуйте сами

SELECT title, priority
FROM tasks
ORDER BY
    -- Замените заполнитель сортировки ниже на выражение CASE, которое
    -- ранжирует строки так, как описано в задании, затем разрывает ничьи в алфавитном порядке
    id
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Продвинутый уровень

Потренируйтесь самостоятельно: Песочница SQL