Ответ
Оператор ORDER BY используется в SQL для сортировки результирующего набора строк по одному или нескольким столбцам в порядке возрастания (ASC) или убывания (DESC).
Базовый синтаксис:
SELECT column1, column2
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
Пример с подробностями:
-- Сортировка сотрудников по фамилии (A-Z), а затем по убыванию зарплаты
SELECT FirstName, LastName, Salary, HireDate
FROM Employees
WHERE DepartmentId = 5
ORDER BY LastName ASC, Salary DESC;
Ключевые особенности и лучшие практики:
- Сортировка по нескольким столбцам: Приоритет задается порядком столбцов в
ORDER BY. Сначала сортируется по первому столбцу, затем по второму внутри групп с одинаковыми значениями первого и т.д. - Сортировка по выражению: Можно сортировать не только по столбцу, но и по результату выражения или псевдониму (
alias).SELECT Name, UnitPrice * UnitsInStock AS TotalValue FROM Products ORDER BY TotalValue DESC; - Обработка NULL-значений: Поведение зависит от СУБД. В SQL Server и PostgreSQL
NULLсчитается меньшим любого значения, поэтому приORDER BY ... ASCстроки сNULLидут первыми, а приDESC— последними. В MySQL по умолчаниюNULLсчитается минимальным значением. - Влияние на производительность:
ORDER BY— ресурсоемкая операция, особенно на больших объемах данных. Если сортировка выполняется часто по одному и тому же столбцу, создание индекса по этому столбцу может значительно ускорить запрос. - Использование с
LIMIT/OFFSET(илиFETCH/OFFSET):ORDER BYобязателен для предсказуемого постраничного вывода (pagination). Без него порядок строк не гарантирован.-- Получить 10 самых дорогих товаров SELECT Name, UnitPrice FROM Products ORDER BY UnitPrice DESC LIMIT 10;