Это статья из цикла статей о языке SQL для Access. В ней описано предложение WHERE и приведены примеры, поясняющие различные методы, используемые при его составлении.
В предложении WHERE инструкции SQL указываются условия, которым должны соответствовать значения полей, чтобы записи, содержащие эти значения, были включены в результаты запроса.
Общие сведения о языке SQL для Access см. в статье Access SQL. Основные понятия, лексика и синтаксис.
В этой статье
Ограничение результатов с помощью условий отбора
Если вы хотите использовать данные для ограничения количества записей, возвращаемых в запросе, можно использовать условия. Критерий запроса аналогичен формуле— это строка, которая может состоять из ссылок на поля, операторов и констант. Условия запроса — это тип выражение.
В таблице ниже представлены образцы условий и объясняется, как они работают.
Условие |
Описание |
>25 and <50 |
Это условие применяется к числовому полю, такому как "Цена" или "ЕдиницНаСкладе". Оно позволяет вывести только те записи, в которых поле "Цена" или "ЕдиницНаСкладе" содержит значение больше 25 и меньше 50. |
DateDiff ("гггг", [ДатаРождения], Date()) > 30 |
Это условие применимо к полю типа «Дата/время», такому как «ДеньРождения». В результат запроса будут включены только те записи, в которых количество лет, прошедшее со дня рождения до текущей даты, превышает 30. |
Is Null |
Это условие может быть применено к полям любого типа для вывода записей, в которых поле имеет значение Null. |
Как показано в предыдущей таблице, критерии могут сильно отличаться друг от друга в зависимости от типа данных поля, к которому применяются критерии, и ваших конкретных требований. Некоторые условия простые и включают только основные операторы и константы. Другие являются сложными и используют функции и специальные операторы и включают ссылки на поля.
Важно: Если поле используется с агрегатной функцией, нельзя указать критерии для этого поля в предложении WHERE. Вместо этого вы используете предложение HAVING для указания критериев для агрегированных полей. Дополнительные сведения см. в статьях Access SQL: основные понятия, словарь и синтаксис и предложение HAVING.
Синтаксис предложения WHERE
В предложении WHERE инструкции SELECT задаются условия запроса.
Предложение WHERE имеет следующий базовый синтаксис:
WHERE field = criterion
Предположим, например, что необходимо узнать телефонный номер клиента, но вы помните только его фамилию: Bagel. Вместо того, чтобы просматривать все телефонные номера, которые содержатся в базе данных, можно воспользоваться предложением WHERE, чтобы ограничить результаты и упростить поиск нужного номера. Если фамилии хранятся в поле LastName, предложение WHERE будет выглядеть следующим образом:
WHERE [LastName]='Bagel'
Примечание: Вам не нужно основывать критерии в предложении WHERE на эквивалентности значений. Можно использовать другие операторы сравнения, например больше (>) или меньше (<). Например, WHERE [Price] >100.
Использование предложения WHERE для объединения источников данных
Иногда необходимо объединить источники данных на основе полей с совпадающими значениями, но разными типами данных. Например, поле в одной таблице может иметь числовой тип данных, а сравнить его нужно с полем из другой таблицы, которое имеет текстовый тип данных.
Создать объединение между полями, имеющими разные типы данных, нельзя. Чтобы объединить данные их двух источников на основе значений полей с разными типами данных, нужно создать предложение WHERE, в котором одно поле используется с ключевым словом LIKE как условие отбора для другого поля.
Предположим, например, что необходимо использовать данные из Таблицы1 и Таблицы2, но только в том случае, когда данные в field1 (текстовое поле в Таблице1) совпадают с данными из field2 (числовое поле в Таблице2). Предложение WHERE будет выглядеть следующим образом:
WHERE field1 LIKE field2
Дополнительные сведения о создании условий отбора, используемых в предложении WHERE, см. в статье Примеры условий запроса.