Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_bd2.doc
Скачиваний:
24
Добавлен:
26.09.2019
Размер:
542.72 Кб
Скачать

2.3.4.2.3 Предикат in

Предикат in определяется следующими синтаксическими правилами:

<in predicate> ::=

<value expression> [NOT] IN

{<subquery> | (<in value list>)}

<in value list> ::=

<value specification>

{,<value specification>}...

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

Значение предиката равно true в том и только в том случае, когда значение левого операнда совпадает хотя бы с одним значением списка правого операнда. Если список правого операнда пуст (так может быть, если правый операнд задается подзапросом) или значение "подразумеваемого" предиката сравнения x = y (где x - значение арифметического выражения левого операнда)равно false для каждого элемента y списка правого операнда, то значение предиката in равно false. В противном случае значение предиката in равно unknown (например, так может быть, если значение левого операнда есть NULL).По определению значение предиката "x NOT IN S" равно значению предиката "NOT (x IN S)".

Предикат exists

Предикат exists имеет следующий синтаксис:

< exists predicate> ::=

EXISTS <subquery>

Значением этого предиката всегда является true или false, и это значение равно true тогда и только тогда, когда результат вычисления подзапроса не пуст.

Предложение having

Применимо к: Microsoft Office Access 2003

Печать

Определяет групповую запись, отображаемую в инструкции SELECT с предложением GROUP BY. После того как GROUP BY сгруппирует записи, HAVING покажет те записи, которые отвечают условиям предложения HAVING.

Синтаксис

SELECT cписок_полей FROM таблица WHERE выбор_условия GROUP BY список_полей_ группы [HAVING условие_ группы]

Инструкция SELECT, содержащая предложение HAVING, включает в себя следующие компоненты.

АРГУМЕНТ

ОПИСАНИЕ

список_полей

Имена полей, загружаемых вместе с любымипсевдонимами, статистическими функциями SQL, предикатами (ALL, DISTINCT, DISTINCTROW или TOP) или с любым другим параметром инструкции SELECT.

таблица

Имя таблицы, из которой загружаются записи.

условие_отбора

Условие отбора. Если инструкция содержит предложение WHERE, то после его применения к записям ядро базы данных Microsoft Jet сгруппирует значения в записи.

список_полей_группы

Имена 10 полей, используемых для группировки записей. Порядок следования имен в списке_полей_группыопределяет уровень группировки — от самого высокого до самого низкого.

условие_группы

Выражение, определяющее отображаемую запись.

Замечания

HAVING не является обязательным предложением.

HAVING аналогично предложению WHERE, которое определяет выбираемую запись. После того как записи сгруппированы предложением GROUP BY, HAVING определяет отображаемую запись.

SELECT КодТипа,

Sum(НаСкладе)

FROM Товары

GROUP BY КодТипа

HAVING Sum(НаСкладе) > 100 And Like "BOS*";

Предложение HAVING может содержать до 40 выражений, имеющих ссылки на логические операторы (например, And и Or).