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

Задание

Легко

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

  • <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
    -- ...
quiz iconПроверьте себя

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

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