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)
PoradaPorada

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:

Pierwszeństwa klauzuli OR w okienku kryteriów

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:

Wiele klauzul AND i OR w okienku kryteriów

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:

Połączone klauzule OR zdefiniowane w okienku kryteriów

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.