Menu
Coddy logo textTech

CASE в ORDER BY

Часть раздела Продвинутый уровень путешествия по SQL на Coddy. Урок 2 из 27.

CASE используется не только в SELECT. Вы можете поместить его внутрь ORDER BY, чтобы отсортировать rows по пользовательскому правилу, которое that столбцы сами по себе не могут выразить.

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

Задание

Легко

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

  • <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
    -- Замените приведённую ниже сортировку-заглушку на выражение CASE, которое
    -- ранжирует строки так, как описано в задании, а затем разрешает ничьи в алфавитном порядке
    id
quiz iconПроверьте себя

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

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

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