Conventions for Combining Search Conditions in the Criteria Pane (Visual Database Tools)
Można tworzyć kwerendy, zawierające dowolną liczbę warunków wyszukiwania połączonych z dowolną liczbą AND i OR podmiotów gospodarczych.Kwerendy z połączeniem typu AND i OR klauzule może stać się złożona, więc warto zrozumieć, jak taką kwerendę jest interpretowana podczas jej wykonywania, i jak taka kwerenda jest reprezentowana w Okienko kryteriów and Okienko SQL.
Uwaga
Szczegółowe informacje na temat warunków wyszukiwania, które zawierają tylko jedną AND lub OR operator, zobacz How to: Specify Multiple Search Conditions for One Column (Visual Database Tools) i How to: Specify Multiple Search Conditions for Multiple Columns (Visual Database Tools).
Poniżej znajdują się informacje dotyczące:
Priorytet AND i OR w kwerendach, które zawierają zarówno.
W jaki sposób warunki w AND i OR klauzule logicznie odnoszą się do siebie.
W jaki sposób reprezentuje kwerendę i projektanta widoku w kwerendach okienka kryteria, które zawierają zarówno AND i OR.
Aby ułatwić zrozumienie poniższego omówienia, wyobraźmy sobie, że pracujesz z employee Tabela zawierająca kolumny hire_date, job_lvl, a status. W przykładach założono, trzeba wiedzieć, informacje takie, jak długo pracownik pracował w firmie (to znaczy to, co data zatrudnienia pracownika jest), typ zadanie, pracownik wykonuje (jakie poziom zadanie jest), a stan pracownika (na przykład na emeryturze).
Priorytet AND i OR
Podczas wykonywania kwerendy oblicza najpierw klauzule połączone operatorem AND, i następnie te połączone operatorem OR.
Uwaga
NOT operator ma pierwszeństwo przed obu AND i OR.
Na przykład, aby znaleźć albo pracowników, którzy pracują w firmie ponad pięć lat na dolnym-poziom zadania lub pracowników na środku-poziom zadania bez Traktuj na data ich zatrudnienia, można utworzyć klauzulę WHERE, takie jak:
WHERE
hire_date < '01/01/90' AND
job_lvl = 100 OR
job_lvl = 200
Aby zastąpić domyślny priorytet AND nad OR, można w okienku SQL ująć w nawias określone warunki.Warunki w nawiasach są zawsze obliczana jako pierwsza.Na przykład aby znaleźć wszystkich pracowników, którzy pracują w firmie ponad pięć lat na niższych i wyższych, można utworzyć klauzulę WHERE, takie jak:
WHERE
hire_date < '01/01/90' AND
(job_lvl = 100 OR job_lvl = 200)
Porada
Zaleca się, że dla jasności, należy zawsze używać nawiasów podczas łączenia AND i OR klauzule zamiast korzystania z domyślnego priorytetu.
Jak działa i z wielu lub klauzul
Opis sposobu AND i OR są klauzulami połączeniu może pomóc w tworzeniu i rozumieniu złożonych kwerend w kwerendę i projektanta widoku.
Jeśli AND zostanie połączonych wiele warunków, przy użyciu, pierwszy zestaw warunków połączonych operatorem AND odnosi się do wszystkich warunków w drugim zestawie.Innymi słowy warunek połączony z i do innego stanu jest rozpowszechniany do wszystkich warunków w drugim zestawie.Na przykład następujące reprezentacja schemat przedstawia warunek AND połączony z zestaw warunków OR:
A AND (B OR C)
Powyższa reprezentacja jest z nią równoznaczna pod względem następujących reprezentacja schematyczny pokazuje, jak warunek AND jest rozpowszechniany do drugiego zestaw warunków:
(A AND B) OR (A AND C)
Użyj kwerendę i projektanta widoku podziału zasada ta ma wpływ na.Załóżmy, że szukasz dla wszystkich pracowników, którzy pracują w firmie ponad pięć lat, w dolnym lub środek-poziom zadania.Wprowadź następujące WHERE klauzula w instrukcja w okienku SQL:
WHERE (hire_date < '01/01/90' ) AND
(job_lvl = 100 OR job_lvl = 200)
Klauzula połączonych operatorem AND odnosi się do obu klauzul połączonych operatorem OR.Aby wyrazić to należałoby powtórzyć warunek AND dla każdego warunku w klauzula OR.Poniższa instrukcja jest bardziej wyraźne (i dłuższa) niż poprzednia, ale jest z nią równoznaczna pod względem:
WHERE (hire_date < '01/01/90' ) AND
(job_lvl = 100) OR
(hire_date < '01/01/90' ) AND
(job_lvl = 200)
Niezależnie od tego, ile poszczególne warunki są zaangażowane ma zastosowanie zasada rozpowszechniania klauzul AND do klauzulach połączonych operatorem OR.Załóżmy, że chcesz znaleźć wyższe lub wyższych pracowników, którzy pracują w firmie ponad pięć lat lub odeszli.Klauzula WHERE może mieć następującą postać:
WHERE
(job_lvl = 200 OR job_lvl = 300) AND
(hire_date < '01/01/90' ) OR (status = 'R')
Po warunków połączonych operatorem AND zostały przekazane, klauzula WHERE będzie wyglądać w następujący sposób:
WHERE
(job_lvl = 200 AND hire_date < '01/01/90' ) OR
(job_lvl = 200 AND status = 'R') OR
(job_lvl = 300 AND hire_date < '01/01/90' ) OR
(job_lvl = 300 AND status = 'R')
W jaki sposób wielu AND i OR are klauzul reprezentowane w okienku kryteriów
Kwerendę i projektanta widoku reprezentuje warunki wyszukiwania w Okienko kryteriów.Jednak w niektórych przypadkach, które mogą obejmować wiele klauzul połączonych operatorem AND i OR, reprezentacja w okienku kryteriów nie muszą być oczekiwań.Ponadto, w przypadku modyfikowania kwerendy w okienku kryteriów lub Okienko Diagram, można stwierdzić, że instrukcja języka SQL zmieniła się względem instrukcji wprowadzonej przez użytkownika.
Ogólnie rzecz biorąc, zasady te określają, jak AND i OR klauzul w okienku kryteriów:
Wszystkich warunków połączonych operatorem AND pojawiają się w Filtr kolumna w siatce lub w tym samym Lub... kolumna.
Wszystkie warunki połączone operatorem OR pojawiają się w oddzielnym Lub... kolumny.
Jeśli logiczny wynik połączenia AND i OR klauzul jest taki, że AND zostaje rozpowszechniona do kilku klauzul OR, w okienku kryteriów jest przedstawione bezpośrednio, przez powtórzenie klauzula AND tyle razy, ile jest to konieczne.
Na przykład, w okienku SQL użytkownik może utworzyć warunek wyszukiwania, na przykład następujące polecenie, w którym dwie klauzule połączone i pierwszeństwo ponad jeden powiązany z trzeciego OR:
WHERE (hire_date < '01/01/90' ) AND
(job_lvl = 100) OR
(status = 'R')
Kwerendę i projektanta widoku reprezentuje ten WHERE klauzula w okienku kryteriów w następujący sposób:
.gif)
Jednak jeśli w klauzulach połączonych operatorem OR mają priorytet względem klauzuli AND, klauzula AND jest powtarzana dla każdej klauzuli OR.Powoduje to, że klauzula AND rozpowszechniane do każdej klauzuli OR.Na przykład w okienku SQL można utworzyć klauzulę WHERE, takie jak:
WHERE (hire_date < '01/01/90' ) AND
( (job_lvl = 100) OR
(status = 'R') )
Kwerendę i projektanta widoku reprezentuje ten WHERE klauzula w okienku kryteriów w następujący sposób:
.gif)
Jeśli w klauzulach połączonych operatorem OR uwzględniona jest tylko jedna kolumna danych, kwerendę i projektanta widoku można umieścić całą klauzulę OR w pojedynczej komórce siatki, dzięki czemu nie musi być powtarzany klauzula AND.Na przykład w okienku SQL można utworzyć klauzulę WHERE, takie jak:
WHERE (hire_date < '01/01/90' ) AND
((status = 'R') OR (status = 'A'))
Kwerendę i projektanta widoku reprezentuje ten WHERE klauzula w okienku kryteriów w następujący sposób:
.gif)
Jeżeli wprowadzisz zmiany do kwerendy (takie jak zmiana wartości w okienku kryteriów) kwerendę i projektanta widoku ponownie utworzy instrukcję SQL w okienku SQL.Wyświetlanie okienka kryteria, a nie z oryginalnej instrukcja, będzie przypominał recreated instrukcja języka SQL.Na przykład jeśli w okienku kryteriów zawarte są rozpowszechnione klauzule AND, wynikowa instrukcja w okienku SQL zostanie ponownie utworzona z rozdzielonymi klauzulami.Aby uzyskać więcej informacji zobacz „ jak i programu Works z wielu lub klauzul „ we wcześniejszej części tego tematu.