Предложение ORDER BY
в SQL указывает, что оператор SQL SELECT
возвращает набор результатов , в котором строки сортируются по значениям одного или нескольких столбцов. Критерии сортировки не обязательно должны быть включены в набор результатов (ограничения применяются для SELECT DISTINCT
, GROUP BY
, UNION [DISTINCT]
и .) Критериями сортировки могут быть выражения, включая имена столбцов, EXCEPT [DISTINCT]
определяемые пользователем функции , арифметические операции или выражения. Выражения оцениваются, и результаты используются для сортировки, т. е. значения, хранящиеся в столбце, или результаты вызова функции.INTERSECT [DISTINCT]
CASE
ORDER BY
это единственный способ отсортировать строки в наборе результатов. Без этого предложения система реляционной базы данных может возвращать строки в любом порядке. Если требуется заказ, это ORDER BY
должно быть указано в SELECT
заявлении, отправленном приложением. Хотя некоторые системы баз данных допускают спецификацию предложения ORDER BY
в подзапросах или определениях представлений , его присутствие не влияет на окончательный порядок набора результатов, но имеет смысл в сочетании с предложением смещения результата или предложением первой выборки. Представление — это логическая реляционная таблица, а реляционная модель требует, чтобы таблица представляла собой набор строк, что не подразумевает никакого порядка сортировки. Единственным исключением являются такие конструкции, как ORDER BY ORDER OF ...
(не стандартизированные в SQL:2003 ), которые позволяют распространять критерии сортировки через вложенные подзапросы.
Основная функциональность стандарта SQL не определяет явно порядок сортировки по умолчанию для Nulls . С помощью расширения T611 SQL:2003 «Элементарные операции OLAP» значения NULL можно сортировать до или после всех значений данных, используя предложения NULLS FIRST
или NULLS LAST
списка ORDER BY
соответственно. Однако не все поставщики СУБД реализуют эту функциональность. Поставщики, которые не реализуют эту функциональность, могут указать в СУБД разные способы сортировки значений Null. [1]
Структура ORDER BY ... DESC
будет упорядочиваться по убыванию, в противном случае используется порядок по возрастанию. (Последнее можно указать явно с помощью ASC
.)
ВЫБРАТЬ * ИЗ Сотрудников В ПОРЯДКЕ ПО Фамилии , Имени
При этом происходит сортировка по столбцу «Фамилия», а затем по столбцу «Имя», если «Фамилия» совпадает.