Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
применимо к:SQL Server
Чтобы связать условия с условиями и дать им приоритет над условиями, связанными ANDсOR, необходимо повторить AND условие для каждого OR условия.
Например, представьте, что вы хотите найти всех сотрудников, которые были с компанией более пяти лет и имеют более низкие рабочие места или уходят на пенсию. Для этого запроса требуется три условия, одно условие, связанное с двумя дополнительными условиями:AND
Сотрудники с датой найма более пяти лет назад, и
Сотрудники с уровнем должности 100 или со статусом "R" (для обозначения статуса "вышел на пенсию").
В следующей процедуре показано, как создать этот тип запроса на панели условий.
Объединение условий при приоритете OR
В области условий (визуальные инструменты базы данных) добавьте столбцы данных, которые требуется выполнить поиск. Если вы хотите искать один и тот же столбец, используя два или более условий
AND, необходимо добавить имя столбца данных в сетку один раз для каждого значения, с которым требуется выполнить поиск.Создайте условия для связывания
OR, введя первую в столбец сетки фильтра и вторую (и последующие) в отдельные столбцы Or... Например, чтобы связать условия сORэтим поискомjob_lvlиstatusстолбцами, введите= 100столбецjob_lvl"Фильтр" и= 'R'в столбце Or... дляstatus.При вводе этих значений в сетке в инструкции на панели SQL создается следующее
WHEREпредложение:WHERE (job_lvl = 100) OR (status = 'R')ANDСоздайте условие, введя его один раз для каждогоORусловия. Поместите каждую запись в тот же столбец сетки, что и условие, соответствующееORусловию. Например, чтобы добавитьANDусловие, которое выполняет поискhire_dateпо столбцу и применяется к обоимORусловиям, введите< '1/1/91'как в столбец "Критерии", так и в столбец Or...При вводе этих значений в сетке в инструкции на панели SQL создается следующее
WHEREпредложение: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 условиям.