Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Aby połączyć warunki z elementem OR i nadać im pierwszeństwo przed warunkami połączonymi z usługą AND, należy powtórzyć AND warunek dla każdego OR warunku.
Załóżmy na przykład, że chcesz znaleźć wszystkich pracowników, którzy byli z firmą ponad pięć lat i mają niższe miejsca pracy lub są na emeryturze. To zapytanie wymaga trzech warunków— jednego warunku połączonego z dwoma dodatkowymi warunkami za pomocą polecenia AND:
Pracownicy z datą zatrudnienia wcześniej niż pięć lat temu i
Pracownicy z poziomem pracy 100 lub których stan to "R" (dla emerytowanych).
Poniższa procedura ilustruje sposób tworzenia tego typu zapytania w okienku Kryteria.
Łączenie warunków, gdy or ma pierwszeństwo
W okienku Kryteria (Visual Database Tools) dodaj kolumny danych, które chcesz wyszukać. Jeśli chcesz wyszukać tę samą kolumnę przy użyciu co najmniej dwóch warunków połączonych z usługą
AND, musisz dodać nazwę kolumny danych do siatki raz dla każdej wartości, którą chcesz wyszukać.Utwórz warunki, z którymi mają być połączone
OR, wprowadzając pierwszy z nich w kolumnie siatki Filtr , a drugi (i kolejne) na oddzielne kolumny Or... . Aby na przykład połączyć warunki zORwyszukiwaniemjob_lvlkolumn istatus, wprowadź= 100ciąg w kolumnie Filter dlajob_lvli= 'R'w kolumnie Or... dla .statusWprowadzenie tych wartości w siatce powoduje utworzenie następującej
WHEREklauzuli w instrukcji w okienku SQL:WHERE (job_lvl = 100) OR (status = 'R')ANDUtwórz warunek, wprowadzając go raz dla każdegoORwarunku. Umieść każdy wpis w tej samej kolumnie siatki coORwarunek, który odpowiada. Aby na przykład dodać warunek, który przeszukuje kolumnęANDhire_datei ma zastosowanie do obuORwarunków, wprowadź< '1/1/91'zarówno w kolumnie Kryteria, jak i w kolumnie Or... .Wprowadzenie tych wartości w siatce powoduje utworzenie następującej
WHEREklauzuli w instrukcji w okienku SQL:WHERE (job_lvl = 100) AND (hire_date < '01/01/91') OR (status = 'R') AND (hire_date < '01/01/91')Wskazówka
Warunek można powtórzyć
AND, dodając go raz, a następnie używając poleceń Wycinanie i wklejanie z menu Edycja , aby powtórzyć go dla innychORwarunków.
Klauzula utworzona WHERE przez projektanta zapytań i widoków jest równoważna następującej WHERE klauzuli, która używa nawiasów do określenia pierwszeństwa OR względem ANDelementu :
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
Notatka
Jeśli wprowadzisz warunki wyszukiwania w formacie widocznym bezpośrednio powyżej w okienku SQL (narzędzia visual database tools), ale następnie wprowadzisz zmianę w zapytaniu w okienkach Diagram lub Kryteria, Projektant zapytań i widoków ponownie utworzy instrukcję SQL, aby dopasować formularz do AND warunku jawnie dystrybuowanego do obu OR warunków.