В предложении WHERE указывается условие отбора. При задании условий отбора используются определенные ограничители, зависящие от типа поля, для которого задается условие отбора. Если при задании запроса на QBE ограничители можно не задавать при вводе запроса (система их введет автоматически), то при задании запроса на SQL необходимо самим правильно определить требуемый ограничитель.
Предложение WHERE может содержать до 40 выражений, связанных логическими операторами.
Имеются некоторые особенности задания запросов в MS Jet SQL. Так, например, при указании аргумента «Условие Отбора» даты должны вводиться в американском формате[§§], даже если используется неамериканская версия ядра базы данных Jet. Например, дата 23 февраля 1946 г. записывается в России как 23.02.46, а в США как 2/23/46. Даты заключаются в символы «решетки» (#).
В QBE допускается ввод дат в европейском формате. Если запрос на QBE преобразовать в запрос на SQL, то изменение формата даты будет проведено автоматически. Так будет выглядеть запрос, изображенный на рис. 7.7, в формате SQL:
SELECTсотрудник.ФИО, сотрудник.Дата_рождения
FROMсотрудник
WHERE(((сотрудник.Дата_рождения)<#2/23/1946#));
В Microsoft Access SQL конструкции BETWEEN...AND имеет такой же синтаксис, как и в ANSI SQL:
выражение1 [NOT] BETWEEN выражение2 AND выражение3
Но правила, применимые к ним, различаются: в Microsoft Access SQL «выражение2» может быть больше, чем «выражение3», а в ANSI SQL - нет.
В приведенном ниже примере выдаются сведения о зарплате сотрудников, чей оклад находится в диапазоне от 1000 до 2000.
SELECT ФИО, оклад
FROM сотрудник
WHERE оклад Between 1000 And 2000;
предыдущаяследующая