Список полей SELECT
Список полей содержит одно или более выражений, разделённых запятыми.Результатом каждого выражения является значение соответствующего поля в наборе данных команды SELECT
.Исключением является выражение *
(“звёздочка”), которое возвращает все поля отношения.
SELECT [...] [DISTINCT | ALL] <select-list> [...] FROM ... <select-list> ::= * | <select-sublist> [, <select-sublist> ...] <select-sublist> ::= <qualifier>.* | <value-expression> [COLLATE collation] [[AS] alias] <value-expression> ::= [<qualifier>.]col_name | [<qualifier>.]selectable_SP_outparm | <literal> | <context-variable> | <function-call> | <single-value-subselect> | <CASE-construct> | <other-single-value-expr>
Параметр | Описание |
---|---|
qualifier |
Имя таблицы (представления) или псевдоним таблицы (представления, хранимой процедуры, производной таблицы). |
collation |
Существующее имя сортировки (только для выражений символьных типов). |
alias |
Псевдоним поля. |
col_name |
Столбец таблицы или представления. |
selectable-SP-outparm |
Выходной параметр селективной хранимой процедуры. |
literal |
Литерал. |
context-variable |
Контекстная переменная. |
function-call |
Вызов скалярной, агрегатной или оконной функции. |
single-value-subselect |
Подзапрос, возвращающий единственное скалярное значение. |
CASE-construct |
Конструкция CASE. |
other-single-value-expr |
Любое другое выражение, возвращающее единственное значение типа данных Firebird или |
Хорошим тоном является уточнять имя поля (или “*
”) именем таблицы/представления/хранимой процедуры (или их псевдонимом), к которой это поле принадлежит. Например, relationname.columnname
, relationname.*
, alias.columnname
, alias.*
.Уточнение имени становится обязательным в случае, если поле с одним и тем же именем находится в более чем одном отношении, участвующей в объединении.Уточнение для “*
” всегда обязательна, если это не единственный элемент в списке столбцов.
Important
|
Обратите внимание
Алиасы (псевдонимы) заменяют оригинальное имя таблицы, представления или хранимой процедуры: как только определён алиас для соответствующего отношения, использовать оригинальное имя нельзя. |
В начало списка полей могут быть добавлены ключевые слова DISTINCT или ALL:
-
DISTINCT удаляет дубликаты строк: то есть, если две или более записей содержат одинаковые значения во всех соответствующих полях, только одна из этих строк будет включена в результирующий набор данных.
-
ALL включает все строки в результирующий набор данных. ALL включено по умолчанию и поэтому редко используется: явное указание поддерживается для совместимости со стандартом SQL.
Выражение COLLATE
не изменяет содержимое поля, однако, если указать COLLATE
для определённого поля, то это может изменить чувствительность к регистру символов или к акцентам (accent sensitivity), что, в свою очередь, может повлиять на:
-
Порядок сортировки, в случае если это поле указано в выражении
ORDER BY
; -
Группировку, в случае если это поле указано в выражении
GROUP BY
; -
Количество возвращаемых строк, если используется
DISTINCT
.