Access как использовать идентификатор в выражении select

Обновлено: 04.11.2024

Указывает ядру СУБД Microsoft Access возвращать информацию из базы данных в виде наборе записей.

Синтаксис

SELECT [predicate] < * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2] [, …]]> FROM tableexpression [, …] [IN externaldatabase] [WHERE… ] [GROUP BY… ] [HAVING… ] [ORDER BY… ] [WITH OWNERACCESS OPTION]

Оператор SELECT состоит из следующих частей:

Одно из следующих предикатов: ALL, DISTINCT, DISTINCTROW, or TOP Вы можете использовать предикаты для ограничения числа возвращаемых записей. Если ничего не указано, значение по умолчанию ALL.

Указывает, что все поля из указанной таблицы или таблиц выбраны.

Имя таблицы с полями, из которых происходит выборка записей.

Имена полей, содержащих данные, которые необходимо извлечь. Если вы включите более одного поля, они будут извлечены в порядке по списку.

Имена, предназначенные для использования в качестве заголовков столбцов вместо исходного названия столбцов в table.

Имя таблицы или таблиц, содержащих данные, которые необходимо извлечь.

Имя базы данных, содержащей таблицы в tableexpression, если они еще не содержатся в текущей базе данных.

Комментарии

Чтобы выполнить это действие, ядро СУБД Microsoft Jet выполняет поиск указанной таблицы или таблиц, извлекает выбранные столбцы, выбирает строки, которые удовлетворяют критерию и сортирует или группирует итоговые строки в указанном порядке.

Операторы SELECT не изменяют данные в базе данных.

SELECT обычно является первым словом в операторе SQL. Большинство операторов SQL — операторы SELECT или SELECT…INTO.

Минимальный синтаксис для оператора SELECT:

SELECT fields FROM table

Вы можете использовать звездочку (*), чтобы выбрать все поля в таблице. В приведенном ниже примере выделяются все поля в таблице "Сотрудники":

Если имя поля добавляется в несколько таблиц в предложении FROM, укажите перед ним имя таблицы и . (dot) operator. В приведенном ниже примере поле "Отдел" находится в таблице Руководители и таблице Сотрудники. Оператор SQL выделяет отделы в таблице Сотрудники в таблицы и имена руководителей в таблице Руководители:

Когда создается объект Recordset, ядро СУБД Microsoft Jet использует имя поля таблицы в качестве имени объекта Field в объекте Recordset. Если вы хотите использовать другое имя поля или имя, которое не подразумевается выражением, используемые для генерации поля, используйте зарезервированное слово AS. В следующем примере используется название Birth в качестве имени возвращаемого объекта Field в итоговом объекте Recordset:

При каждом использовании агрегатных функций или запросов, которые возвращают неоднозначные или повторяющиеся имена объекта Field, воспользуйтесь оператором AS для предоставления запасного имени объекта Field. В следующем примере используется название HeadCount в качестве имени возвращаемого объекта Field в итоговом объекте Recordset:

Для дополнительного ограничения и организации возвращаемых данных, можно использовать другие предложения в операторе SELECT. Дополнительные сведения см. в статье справки для предложения, которое вы используете.

Ссылки, предоставляемые сообществом UtterAccess. UtterAccess — это премиальный вики-портал и форум, посвященный Microsoft Access.

Пример

В некоторых из примеров ниже предполагается, что существует гипотетическое поле Salary (Оклад) в таблице Employees (Сотрудники). Обратите внимание, что это поле на самом деле не существует в таблице Employees (Сотрудники) базы данных Northwind.

В данном примере создается объект Recordset типа dynaset на основании оператора SQL, который выбирает поля "Фамилия" и "Имя" среди всех записи в таблице "Сотрудники". Он вызывает процедуру EnumFields, которая печатает содержимое объекта Recordset в окне Debug.

В данном примере выполняется подсчет количества записей, которые содержат информацию в поле "Индекс", и присваивается имя "Путь" возвращаемому полю.

В этом примере показано количество сотрудников и среднее и максимальное вознаграждения.

Суб процедура EnumFields передает объект Recordset из процедуры вызова. Затем процедура форматирует и печатает поля Recordset в окне Отладка. Переменная - это желаемая ширина печатного поля. Некоторые поля могут быть обрезаны.

Читайте также: