Соединение условий, если приоритет имеет оператор OR (визуальные инструменты для баз данных)
Чтобы связать условия, оператором OR и дать им приоритет над условиями, связанными оператором AND, необходимо повторить условие, связанное оператором AND, для каждого условия, связанного оператором OR.
Например, предположим, что нужно найти всех служащих, которые проработали в компании более пяти лет и имеют самую низшую должность или вышли на пенсию. Этот запрос требует трех условий: одного условия, связанного с двумя дополнительными оператором AND:
служащие, принятые на работу ранее, чем пять лет назад;
служащие, у которых уровень должности равен 100 или состояние имеет значение равен «R» (для покинувших компанию).
В следующей процедуре показано, как создать такой тип запроса на панели критериев.
Соединение условий, с приоритетом оператора OR
На панель критериевдобавьте столбцы данных для поиска. Если необходимо выполнить поиск в одном столбце по двум и более условиям, связанным оператором AND, в сетку необходимо добавить имя столбца данных столько раз, сколько имеется искомых значений.
Создайте условия, которые должны быть связаны оператором OR, введя первое условие в столбец сетки Фильтр , а второе (и последующие условия) в отдельные столбцы Или... Например, чтобы создать условия, связанные оператором OR для поиска по столбцам
job_lvl
иstatus
, введите= 100
в столбец Фильтр дляjob_lvl
и= 'R'
в столбец Или... дляstatus
.Ввод этих значении в сетку приводит к появлению такого предложения WHERE в инструкции на панели SQL:
WHERE (job_lvl = 100) OR (status = 'R')
Создайте условие, связанное оператором AND, добавив его один раз для каждого условия, связанного оператором OR. Поместите условие AND в тот же самый столбец сетки, в котором находится соответствующее условие OR. Например, чтобы добавить условие, связанное оператором AND для поиска по столбцу
hire_date
и применить его к обоим условиям, связанным оператором OR, введите< '1/1/91'
в оба столбца: столбец критериев и столбец Или... .Ввод этих значении в сетку приводит к появлению такого предложения WHERE в инструкции на панели SQL:
WHERE (job_lvl = 100) AND (hire_date < '01/01/91' ) OR (status = 'R') AND (hire_date < '01/01/91' )
Совет
Можно повторить ввод предварительно введенного условия AND с помощью команд Вырезать и Вставить из меню Правка , чтобы продублировать его для других условий, связанных оператором OR.
Предложение WHERE, созданное в конструкторе запросов и представлений, эквивалентно следующему предложению WHERE, в котором используются скобки для указания приоритета оператора OR над оператором AND:
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
Примечание
Если ввести условия поиска в формате, представленном выше, в панель SQL, но потом изменить запрос на панели диаграмм или панели критериев, то конструктор запросов и представлений заново создает инструкцию SQL, так чтобы она соответствовала форме с условием AND, явно распространенным на оба условия, связанные оператором OR.
См. также:
Обозначения для условий комбинированного поиска на панели критериев (визуальные инструменты для баз данных)
Определение критериев поиска (визуальные инструменты для баз данных)