Список элементов выборки |
Элементы выборки разделяются запятой:
<список-элементов-выборки> = <элемент-выборки> { , <элемент-выборки> }
<элемент-выборки> - описание одного элемента выборки:
<элемент-выборки> = * | <имя-таблицы-БД>.* | <выражение> [ (<атрибуты>) ]
* - извлекаются все поля из тех таблиц, которые указаны в секции <список-таблиц-для-выборки>.
<имя-таблицы-БД>.* - извлекаются все поля из указанной таблицы.
<выражение> - элементом выборки может быть любое арифметическое выражение со следующими операндами:
операторы вызова стандартных процедур и функций;
переменные, объвленные в логической таблице (для выборки в составе логической таблицы);
поля таблиц базы данных. Для обращения к полю таблицы базы данных необходимо указать имя таблицы и через точку имя поля таблицы, при этом таблицы, к полям которых Вы обращаетесь, не обязательно описывать в разделе <описание-таблиц-для-выборки> (см. "Список таблиц для выборки. "): данные таблицы автоматически присоединяются к списку таблиц.
<атрибуты> - выражение для вычисления элемента выборки может иметь атрибуты, которые заключаются в круглые скобки и располагаются вслед за выражением. Атрибуты в списке разделяются запятой.
<атрибуты> = <атрибут> { , <атрибут> }
<атрибут> - элемента выборки:
<атрибут> = fieldname = <имя-поля-логической-таблицы> | fieldtitle = <заголовок-поля-логической-таблицы> | fieldlenght = <длина-поля-логической-таблицы>
<имя-поля-логической-таблицы> - идентификатор поля.
<заголовок-поля-логической-таблицы> - строка заголовка поля.
<длина-поля-логической-таблицы> - целое число.
Последовательность перечисления атрибутов не имеет значения. Любой атрибут, как и вся конструкция, может отсутствовать. Значения атрибутов по умолчанию следующие:
fieldName
если выражение является просто полем физической таблицы, то берется либо название поля таблицы, либо ИмяТаблицы_ИмяПоля, объединенные знаком подчеркивания (если есть повторяющиеся поля в разных таблицах);
если выражение не является полем таблицы, то fieldName = Expr# (автоматическая нумерация от нуля);
fieldTitle
если выражение является просто полем таблицы, то заголовок берется от поля таблицы;
если выражение не является полем таблицы, то fieldTitle = Expr# (номер тот же, что у имени поля);
fieldLenght - всегда стандартная длина для данного типа.
При генерации Pascal-заготовок константа для номера поля формируется путем добавления префикса "fn" к имени поля.
Пример 1
select Employee.* where Employee.status = 'П';
В примере выбираются все сотрудники, работающие на постоянной основе.
Пример 2
select if( status = 'П', salary+premium, salary ),* from Employee;
В примере для всех постоянных сотрудников выбирается сумма зарплаты и премии, для сотрудников, не работающих на постоянной основе, должна выбираться только зарплата.