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.

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

Порядок сравнения

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

Расположение NULL

Ключевое слово NULLS определяет, где в отсортированном наборе данных будут находиться значения NULL соответствующего столбца – в начале выборки (FIRST) или в конце (LAST). По умолчанию принимается NULLS FIRST.