Сортировка с помощью 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 — локальная установка не требуется.
Все уроки этого курса
- Сортировка с помощью ORDER BY
- Сортировка по нескольким столбцам
- LIMIT и OFFSET
- Поиск записей с максимальными и минимальными значениями