Список полей 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.