1417


Łączenie wyników zapytań

W języku SQL istnieją mechanizmy, które pozwalają łączyć wyniki kilku zapytań. Do połączenia zapytań można użyć jednej z trzech instrukcji: UNION, INTERSECT, EXCEPT.

Instrukcja UNION

Instrukcja UNION łączy wyniki zapytań i ma postać:

zapytanie1 UNION zapytanie2

Warunkiem wykonania instrukcji jest, aby łączone zapytania miały taką samą liczbę kolumn oraz aby typy kolumn były takie same.

Przykład

SELECT nazwisko, imię FROM Klient WHERE miejscowość=”Przeworsk” UNION SELECT nazwisko, imię FROM Klient WHERE miejscowość=”Rzeszów”;

Pierwsze zapytanie zwróci listę klientów z Przeworska, drugie z Rzeszowa. Wynikiem połączenia zapytań będzie lista klientów z Przeworska i z Rzeszowa.

Instrukcja UNION domyślnie powoduje usunięcie powtarzających się wierszy. W celu zachowania w wyniku wszystkich wierszy należy użyć instrukcji UNION ALL. Takie użycie instrukcji spowoduje dużo szybsze zwrócenie wyniku, ponieważ nie wymaga wyszukiwania
i usuwania powtarzających się wierszy.

Instrukcja UNION lub UNION ALL może zastępować w zapytaniu operator OR.

SELECT nazwisko, imię FROM Klient WHERE miejscowość='Przeworsk' OR miejscowość='Rzeszów';

Instrukcja INTERSECT

Instrukcja INTERSECT zwraca część wspólną wyników dwóch zapytań i ma postać:

zapytanie1 INTERSECT zapytanie2

Podobnie jak poprzednio, obydwa zapytania powinny zwracać taką samą liczbę kolumn o takich samych typach (UWAGA: nie zadziała pod MS Access)

Przykład

SELECT nazwisko, imię FROM Klient WHERE telefon is null INTERSECT SELECT nazwisko, imię FROM Klient WHERE adres_e_mail is null;

Instrukcja INTERSECT zwróci dane klientów, którzy nie podali numeru telefonu ani adresu e-mail.

Instrukcja EXCEPT

Instrukcja EXCEPT ma postać:

zapytanie1 EXCEPT zapytanie2

Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, ale nie było ich
w wyniku drugiego zapytania. Zmiana kolejności zapytań w tej instrukcji spowoduje zmianę wyniku. (UWAGA: nie zadziała pod MS Access)

Przykład

SELECT nazwisko, imię FROM Klient WHERE miejscowość='Przeworsk' EXCEPT SELECT nazwisko, imię FROM Klient WHERE telefon is not null;

Instrukcja EXCEPT zwróci klientów, którzy mieszkają w Przeworsku i podali numer telefonu.



Wyszukiwarka

Podobne podstrony:
1417
1417 moja?by wilki NHR3QMGYCH6FEPXWTEREMNXJYYMIKHRGOK5CESI
1417
1417
1417
Kody VAG od 257 do 1417
1417

więcej podobnych podstron