Konwencje obowiązujące przy łączeniu warunków wyszukiwania w okienku kryteriów (narzędzia Visual bazy danych)
Można utworzyć kwerendy zawierające dowolną liczbę warunków wyszukiwania, połączone z dowolną liczbą i oraz lub operatorów.Kwerendy z kombinacji i oraz lub klauzul może stać się złożona, więc zrozumieć, jak taka kwerenda jest interpretowana podczas możesz wykonać i jak takiej kwerendy jest reprezentowane w Okienku kryteriów i Okienka SQL.
Ostrzeżenie
Szczegółowe informacje na temat warunków wyszukiwania zawierające tylko jedną i lub operator OR, zobacz Jak Określanie wielu warunków wyszukiwania dla jednej kolumny (wizualne Narzędzia bazy danych) i Jak Określanie wielu warunków wyszukiwania dla wielu kolumn (wizualne Narzędzia bazy danych).
Poniżej można znaleźć informacje dotyczące:
Priorytet i oraz lub kwerend zawierających obydwa.
Jak warunki w i i/lub logicznie odnoszą się do innych klauzul.
Jak kwerendy i widoku Projektant reprezentuje w kwerendach okienku kryteriów, które zawierają zarówno i oraz lub.
Aby ułatwić zrozumienie poniższego omówienia, wyobraźmy sobie, że pracujesz z employee tabela zawierającej kolumny hire_date, job_lvl, i status.Przykładach założono, trzeba znać takie informacje, jak długo pracownik pracował w firmie (to znaczy, co data zatrudnienia pracownika jest), typ zadanie, pracownik wykonuje (jakie zadanie poziom jest), a stan pracownika (na przykład na emeryturze).
Pierwszeństwo i oraz lub
Gdy kwerenda jest wykonywana, najpierw sprawdza klauzule połączone operatorem AND, a następnie klauzule połączone z lub.
Ostrzeżenie
Operator nie ma pierwszeństwo przed zarówno i oraz lub.
Na przykład, aby znaleźć albo pracowników, którzy pracują w firmie ponad pięć lat na dolnym -poziom zadań lub pracowników na środku -poziom zadań bez poszanowaniu data ich zatrudnienia, można utworzyć klauzulę WHERE, takich jak:
WHERE
hire_date < '01/01/90' AND
job_lvl = 100 OR
job_lvl = 200
Aby zastąpić domyślny priorytet lub powyżej lub w okienku SQL można umieścić nawiasy wokół określonych warunków.Warunki w nawiasach są zawsze sprawdzane jako pierwsze.Na przykład, aby znaleźć wszystkich pracowników, którzy pracują w firmie ponad pięć lat albo obniżyć lub środka -poziom zadań, można utworzyć klauzulę WHERE, takich jak następuje:
WHERE
hire_date < '01/01/90' AND
(job_lvl = 100 OR job_lvl = 200)
Porada |
---|
Zalecane jest, dla jasności, należy zawsze używać nawiasów podczas łączenia i oraz lub klauzul, zamiast polegać na domyślny priorytet. |
Jak i współpracuje z wieloma lub klauzul
Opis jak i oraz lub klauzul są powiązane w połączeniu może pomóc w tworzeniu i rozumieniu złożonych kwerend w kwerendzie i projektanta widoku.
Jeśli łączenie wielu warunków korzystania I, pierwszy zestaw warunków połączonych operatorem i stosuje się do wszystkich warunków w drugim zestawie.Innymi słowy, warunek połączony z innym warunkiem jest rozpowszechniany do wszystkich warunków w drugim zestaw.Na przykład poniższy schematyczny przedstawia warunek AND połączony z zestaw warunków OR:
A AND (B OR C)
Powyższa reprezentacja jest logicznie równoznaczna Poniższy schematyczny, który pokazuje, jak warunek AND jest rozpowszechniany do drugiego zestaw warunków:
(A AND B) OR (A AND C)
Ta zasada rozpowszechniania ma wpływ, jak używać kwerendy i projektanta widoku.Załóżmy, że poszukiwanego dla wszystkich pracowników, którzy zostały w firmie ponad pięć lat w dolnym lub środka -poziom zadań.Wprowadź się następującej klauzula WHERE w instrukcja w okienku SQL:
WHERE (hire_date < '01/01/90' ) AND
(job_lvl = 100 OR job_lvl = 200)
Klauzula połączone operatorem AND odnosi się do obu klauzul połączonych operatorem lub.Jawne sposobem express to jest powtórzyć warunek raz 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:
WHERE (hire_date < '01/01/90' ) AND
(job_lvl = 100) OR
(hire_date < '01/01/90' ) AND
(job_lvl = 200)
Zasada rozpowszechniania klauzul AND połączonych operatorem OR obowiązuje bez względu na to, jaka liczba poszczególnych warunków są zaangażowane.Załóżmy, że chcesz Znajdź wyższe lub środka -poziom pracowników, którzy zostały w firmie ponad pięć lat lub odeszli.Klauzula WHERE może wyglądać następująco:
WHERE
(job_lvl = 200 OR job_lvl = 300) AND
(hire_date < '01/01/90' ) OR (status = 'R')
Po warunków połączonych operatorem i zostały przekazane, klauzula WHERE będzie wyglądać następująco:
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')
Jak i wiele, i lub klauzul są reprezentowani w okienku kryteriów
Kwerendy i widoku Projektant reprezentuje warunki wyszukiwania w Okienku kryteriów.Jednakże w niektórych przypadkach obejmujących wiele klauzul połączonych i oraz lub reprezentacji w okienku kryteriów może być oczekiwanych.Ponadto, w przypadku modyfikowania kwerendy w okienku kryteriów lub W okienku Diagram, może się okazać, że instrukcja języka SQL została zmieniona z zostały wprowadzone.
Generalnie, reguły te dyktować jak i oraz lub klauzul, które są wyświetlane w okienku kryteriów:
Wszystkie warunki połączone operatorem AND pojawiają się w filtru kolumna w siatce lub w tym samym lub... kolumna.
Wszystkie warunki połączone z lub są wyświetlane w osobnych lub... kolumny.
Jeśli logiczny wynik kombinacji i oraz lub klauzul jest, że AND zostaje rozpowszechniona do kilku klauzul OR, w okienku kryteriów jest reprezentuje jawnie, przez powtórzenie klauzula AND odpowiednią liczbę razy.
Na przykład w okienku SQL może utworzyć warunek wyszukiwania, na przykład następujące polecenie, w którym dwie klauzule połączone i mają priorytet względem trzeciej, połączonej z lub:
WHERE (hire_date < '01/01/90' ) AND
(job_lvl = 100) OR
(status = 'R')
Kwerendy i widoku Projektant reprezentuje to gdzie klauzula w okienku kryteriów w następujący sposób:
Jednakże jeśli w klauzulach połączonych operatorem OR mają pierwszeństwo przed 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ć WHERE klauzula takich jak następuje:
WHERE (hire_date < '01/01/90' ) AND
( (job_lvl = 100) OR
(status = 'R') )
Kwerendy i widoku Projektant reprezentuje to gdzie klauzula w okienku kryteriów w następujący sposób:
Jeśli w klauzulach połączonych operatorem OR uwzględniona jest tylko jedna kolumna danych, kwerendy i projektanta widoku można umieścić całą klauzulę OR pojedyncze komórka siatki, unikając konieczności powtarzania klauzula AND.Na przykład w okienku SQL można utworzyć WHERE klauzula takich jak następuje:
WHERE (hire_date < '01/01/90' ) AND
((status = 'R') OR (status = 'A'))
Kwerendy i widoku Projektant reprezentuje to gdzie klauzula w okienku kryteriów w następujący sposób:
Jeśli wprowadzono zmiany do kwerendy (takie jak zmiana wartości w okienku kryteriów), kwerendy i widoku Projektant odtwarza instrukcja języka SQL w okienku SQL.Ponownie utworzona instrukcja języka SQL będzie przypominał wyświetlania okienka kryteria zamiast oryginalnej instrukcji.Na przykład jeśli w okienku kryteria zawarte są rozpowszechnione klauzule AND, wynikowa instrukcja w okienku SQL zostaną odtworzone z rozdzielonymi klauzulami.Aby uzyskać szczegółowe informacje zobacz "Jak I działa z wieloma lub klauzul" wcześniej w tym temacie.