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