Заказать по
Ан 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 . С помощью расширения SQL:2003 T611 «Элементарные операции OLAP» значения NULL можно сортировать до или после всех значений данных с помощью NULLS FIRST
или NULLS LAST
положения ORDER BY
список соответственно. Однако не все поставщики СУБД реализуют эту функциональность. Поставщики, которые не реализуют эту функциональность, могут указать в СУБД разные способы сортировки значений Null. [1]
Структура ORDER BY ... DESC
будет упорядочиваться по убыванию, в противном случае используется порядок по возрастанию. (Последнее можно указать явно, используя ASC
.)
Примеры
[ редактировать ]SELECT * FROM Employees
ORDER BY LastName, FirstName
При этом происходит сортировка по столбцу «Фамилия», а затем по столбцу «Имя», если «Фамилия» совпадает.
Ссылки
[ редактировать ]- ^ «Обработка NULL в SQLite по сравнению с другими ядрами баз данных» . Проверено 25 января 2009 г.