Описание полей выборки
Список полей выборки
Поле выборки
Описание поля
Выражение
Псевдоним поля
Группа полей
Список вложенных полей
Вложенное поле
Описание пустой таблицы
После обязательного ключевого слова ВЫБРАТЬ (и уточняющих слов РАЗРЕШЕННЫЕ, РАЗЛИЧНЫЕ и ПЕРВЫЕ) в тексте запроса задается список полей выборки. Эти поля будут обрабатываться при выборке данных в запросе. Результат запроса также будет иметь набор полей, определенный в данном списке. Поля выборки описываются по следующим правилам:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Список полей выборки состоит из одного или нескольких элементов, разделенных запятыми. Вместо перечисления полей в списке выборки можно указать звездочку "*". Это будет означать, что результат запроса должен содержать все поля, которые есть в исходных таблицах – источниках данных запроса, описанных в списке источников.
Замечание! При указании звездочки "*" в списке полей выборки в результат не включаются виртуальные поля исходных таблиц.
Каждое <Поле выборки> состоит из описания поля выборки и необязательного псевдонима поля.
Описание поля определяет, каким образом должны формироваться значения поля. В простейшем случае поле выборки является ссылкой на поле исходной таблицы. Ссылка может задаваться с указанием таблицы, содержащей это поле, или без указания самой таблицы. Разыменование полей рассматривается в Разыменование полей.
В общем случае поле выборки может представлять собой не только ссылку на поле исходной таблицы, а некоторое выражение.
Результаты запроса могут быть сгруппированы с помощью агрегатных функций, указанных в качестве выражений в полях выборки.
Каждому полю выборки может быть назначен псевдоним. В дальнейшем <Псевдоним поля> может использоваться для более удобного обращения к данному полю. Если полю выборки назначить псевдоним, то в дальнейшем к этому полю можно будет обращаться, используя его псевдоним, в предложениях УПОРЯДОЧИТЬ ПО и ИТОГИ, а также при работе с результатом запроса. Такое обращение может быть более удобным и наглядным, а в некоторых случаях единственно возможным.
Ключевое слово КАК может предшествовать псевдониму поля. Это слово можно не указывать вообще, но если оно указано, повышается наглядность и удобочитаемость текста запроса.
Псевдонимы полей задаются в соответствии с правилами назначения идентификаторов переменных. Псевдонимы в запросе не могут совпадать.
Назначение псевдонимов полям само по себе никак не влияет на выборку данных в запросе.
<Группа полей> может указываться только тогда, когда поле выборки указывает на вложенную таблицу. В этом случае можно указать, какие поля должны обрабатываться в выборке по вложенной таблице. Если группа полей не указана, в выборке будут обрабатываться все поля вложенной таблицы. Поле в списке выборки может ссылаться на вложенную таблицу источника данных запроса. В этом случае поле результата запроса будет иметь тип РезультатЗапроса, то есть содержать вложенный результат запроса, сформированный на основе вложенной таблицы – источника.
По умолчанию во вложенный результат включаются все поля вложенной таблицы – источника данных. Имеется возможность явно определить группу полей, которые должны содержаться во вложенном результате запроса.
<Список вложенных полей> состоит из одного или нескольких элементов, разделенных запятыми. Если список состоит из одного элемента, его не обязательно заключать в скобки.
Вместо перечисления вложенных полей можно указать звездочку "*"; это будет означать, что во вложенный результат запроса должен содержать все поля, которые есть во вложенной таблице.
<Вложенное поле> может представлять некоторое выражение. В простейшем случае <Выражение> – это ссылка на поле вложенной таблицы.
В случае, если в запросе используется объединение, и в некоторых частях объединения присутствуют вложенные таблицы, а в некоторых нет, возникает необходимость дополнения списка выборки полями – пустыми вложенными таблицами. Делается это при помощи ключевого слова ПУСТАЯТАБЛИЦА, после которого в скобках указываются псевдонимы полей, из которых будет состоять вложенная таблица.
Пример:
// Выбрать поля Номер и Состав
// из виртуальной таблицы Документ.РасхНакл
ВЫБРАТЬ Ссылка.Номер, ПУСТАЯТАБЛИЦА.(Ном, Тов, Кол) КАК Состав
ИЗ Документ.РасхНакл
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ Ссылка.Номер, Состав.(НомерСтроки, Товар, Количество)
ИЗ Документ.РасхНакл Документ.РасходнаяНакладная.Состав.*