По умолчанию, записи выводимых в таблице данных упорядочиваются так, чтобы это сопровождалось наименьшими издержками с точки зрения траты компьютерных ресурсов. Как правило, порядок вывода связан с физической последовательностью выводимых записей в БД.
При необходимости, можно явно задать способ сортировки записей в таблице. Для этого используется ключевое слово ORDER BY.
Формат использования: ORDER BY
<данные для сортировки>
, где в качестве данных для сортировки
могут использоваться названия полей данных по которым сортируется таблица, либо номера
столбцов таблицы выводимой в результате запроса (нумерация столбцов идет с 1). Данные для
сортировки перечисляются через запятую.
Допускается выполнять сортировку по полям БД, не выводимым в итоговой таблице. Ключевое слово ORDER BY располагается в запросе после ключевых слов FROM, WHERE, GROUP BY, HAVING.
Сортировка может выполняться как по одному полю, так и по нескольким. При сортировке по нескольким полям, сначала производится сортировка по первому указанному полю, затем - по второму, и т.д.
По умолчанию, сортировка выполняется по возрастанию значений поля, для выполнения сортировки по уменьшению значений, задайте ключевое слово DESC после названия поля сортировки. При сортировке по нескольким полям допускается для части полей сортировка по возрастанию значений, а для части - по уменьшению.
Примеры сортировки данных
Сортировка по одному полю
SELECT area, perimeter FROM Здания ORDER BY Sys
Сортирует итоговую таблицу по значениям поля Sys
при том, что поле
Sys
не выводится в таблице.
Сортировка по нескольким полям
SELECT area, perimeter FROM Здания ORDER BY [Количество этажей], Area
Сортирует таблицу сначала по значению поля Количество этажей
, а затем
- по Area
.
Сортировка по столбцу итоговой таблицы
SELECT area/perimeter FROM Здания ORDER BY 1
Сортирует таблицу по первому ее столбцу (частному от деления площадей зданий на их периметры).
Сортировка по убыванию значений
SELECT area, perimeter FROM Здания ORDER BY Area DESC
Сортирует таблицу по убыванию значения поля Area
.
Сортировка по возрастанию и по убыванию значений
SELECT area, perimeter FROM Здания ORDER BY Area DESC, Sys
Сортирует таблицу по убыванию значения поля Area
, записи с равными
значениями данного поля сортируются по возрастанию значения поля
Sys
.