0Pricing
SQL Academy · Урок

Сортировка с помощью ORDER BY

Сортируйте строки по возрастанию и убыванию

«Сортировка с помощью ORDER BY» — бесплатный урок SQL Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SQL Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SQL Academy содержит 4 уроков всего.

Почему порядок важен

По умолчанию SELECT возвращает строки в порядке, который не гарантируется. База данных может вернуть их в любой удобной для неё последовательности.

Если нужен предсказуемый результат, например список в алфавитном порядке или лента от новых записей к старым, необходимо явно указать это с помощью ORDER BY.

-- Without ORDER BY, row order is NOT guaranteed
SELECT name, price
FROM products;

Предложение ORDER BY

ORDER BY располагается ближе к концу запроса — после WHERE и перед LIMIT. Укажите столбец, по которому нужно выполнить сортировку.

Так товары сортируются в алфавитном порядке по столбцу name.

SELECT name, price
FROM products
ORDER BY name;

Сортировка по возрастанию используется по умолчанию

Если не указать иное, сортировка выполняется по возрастанию: от A до Z для текста, от меньшего к большему для чисел, от ранних дат к поздним.

Можно написать ASC, чтобы сделать это явным, но результат не изменится.

-- These two queries are identical
SELECT name, price FROM products ORDER BY price;
SELECT name, price FROM products ORDER BY price ASC;

Сортировка по убыванию

Добавьте DESC, чтобы обратить порядок: от Z до A, от большего к меньшему, от новых значений к старым.

Так самые дорогие товары окажутся первыми.

SELECT name, price
FROM products
ORDER BY price DESC;

Сортировка дат

Даты и временные метки сортируются в хронологическом порядке. DESC выводит сначала самые свежие строки — это классический шаблон для лент активности и журналов.

SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC;

Сортировка по невыбранному столбцу

Столбец сортировки не обязан присутствовать в списке SELECT. Можно сортировать по значению, которое пользователь никогда не видит.

Здесь отображается только имя, но сортировка выполняется по цене.

SELECT name
FROM products
ORDER BY price DESC;

Сортировка по позиции столбца

PostgreSQL позволяет сортировать по позиции столбца в списке SELECT. ORDER BY 2 означает «второй выбранный столбец».

Это удобно для быстрых запросов, но использование настоящих имён столбцов понятнее и безопаснее.

-- 2 refers to price (the 2nd column)
SELECT name, price
FROM products
ORDER BY 2 DESC;

Сортировка по выражению

Сортировать можно не только по сохранённому столбцу, но и по вычисляемому значению. Выражение вычисляется для каждой строки, а затем используется для сортировки.

Так товары ранжируются по общей стоимости их запасов.

SELECT name, price, stock
FROM products
ORDER BY price * stock DESC;

Сортировка по псевдониму

Если задать выражению псевдоним в SELECT, этот псевдоним можно повторно использовать в ORDER BY. Так запрос становится понятнее.

SELECT name, price * stock AS inventory_value
FROM products
ORDER BY inventory_value DESC;

Учитывается ли регистр при сортировке текста

Сортировка текста следует правилам сортировки базы данных, поэтому прописные и строчные буквы могут располагаться не так, как вы ожидаете.

Чтобы принудительно выполнять сортировку без учёта регистра, сортируйте по приведённой к нижнему регистру копии столбца с помощью LOWER().

SELECT name
FROM products
ORDER BY LOWER(name);

Место ORDER BY в запросе

Запомните логический порядок предложений:

  • FROM выбирает таблицу
  • WHERE фильтрует строки
  • ORDER BY сортирует оставшиеся строки
  • LIMIT ограничивает результат

Сортировка всегда выполняется после фильтрации.

SELECT name, price
FROM products
WHERE price > 10
ORDER BY price DESC;

Быстрая проверка

Какой запрос выводит сначала самые дешёвые товары?

Итоги

Теперь вы управляете порядком строк:

  • ORDER BY column сортирует результат
  • ASC (по умолчанию) — от меньшего к большему; DESC меняет порядок на обратный
  • Сортировать можно по столбцам, позициям, выражениям или псевдонимам
  • Используйте LOWER() для сортировки текста без учёта регистра

В следующем уроке вы научитесь разрешать совпадения сортировкой сразу по нескольким столбцам.

SELECT name, price
FROM products
ORDER BY price DESC;

Часто задаваемые вопросы

Урок «Сортировка с помощью ORDER BY» бесплатный?

Да — полный текст урока «Сортировка с помощью ORDER BY» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SQL Academy, подпишись на CoddyKit PRO. Курс SQL Academy содержит 4 уроков всего.

Чему я научусь в уроке «Сортировка с помощью ORDER BY»?

Сортируйте строки по возрастанию и убыванию Ты практикуешь SQL Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать SQL Academy?

Предыдущий опыт не требуется. SQL Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Сортировка с помощью ORDER BY»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке SQL Academy?

Да. Каждый урок SQL Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Сортировка с помощью ORDER BY
  2. Сортировка по нескольким столбцам
  3. LIMIT и OFFSET
  4. Поиск записей с максимальными и минимальными значениями
← Назад к SQL Academy