FirebirdSQL logo

ORDER BY

Результат выборки данных при выполнении оператора SELECT по умолчанию никак не упорядочивается (хотя довольно часто происходит упорядочение в хронологическом порядке помещения строк в таблицу операторами INSERT). Предложение ORDER BY позволяет задать необходимый порядок при выборке данных.

Синтаксис
SELECT ... FROM ...
...
ORDER BY <ordering-item> [, <ordering-item> ...]

<ordering-item> ::=
  {col-name | col-alias | col-position | expression}
  [COLLATE collation-name]
  [ASC[ENDING] | DESC[ENDING]]
  [NULLS {FIRST | LAST}]
Table 1. Параметры предложения ORDER BY
Параметр Описание

col-name

Полное имя столбца.

col-alias

Алиас (псевдоним) столбца.

col-position

Позиция столбца.

expression

Произвольное выражение.

collation-name

Имя сопоставления (порядка сортировки).

В предложении через запятую перечисляются столбцы, по которым нужно упорядочить результирующий набор данных.Можно задавать имя столбца, псевдоним, присвоенный столбцу в списке выбора при помощи ключевого слова AS, или порядковый номер столбца в списке выбора.В одном предложении можно для разных столбцов смешивать форму записи.Например, один столбец в списке сортировки может быть задан своим именем, а другой порядковым номером.

Important

Если вы сортируете по позиции столбца или его алиасу, то выражение соответствующее этой позиции (алиасу) будет скопировано из списка выборки SELECT.Это касается и подзапросов, таким образом, подзапрос будет выполняться, по крайней мере, два раза.

Note

В случае сортировки по номеру столбца для запроса вида SELECT * сервер раскрывает звёздочку (*) для определения сортируемых столбцов.Однако использование данной особенности в ваших запросах является “плохой практикой”.

Направление сортировки

Ключевое слово ASCENDING задаёт упорядочение по возрастанию значений.Допустимо сокращение ASC.Применяется по умолчанию.

Ключевое слово DESCENDING задаёт упорядочение по убыванию значений.Допустимо сокращение DESC.

В одном предложении упорядочение по одному столбцу может идти по возрастанию значений, а по другому — по убыванию.