Łączenie wyników zapytań
Technikum » SBD » SQL » Łą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
Pierwsze zapytanie zwróci listę klientów z Warszawy, drugie z Gdańska. Wynikiem połączenia zapytań będzie lista klientów z Warszawy i z Gdańska.
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.
Przykład
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.
Przykład
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.
Przykład
Instrukcja EXCEPT zwróci klientów, którzy mieszkają w Warszawie i nie podali numeru telefonu komórkowego.