Operator UNION i UNION ALL w SQL
- Poprzednia strona SQL Full Join
- Następna strona SQL Select Into
Operator UNION w SQL
Operator UNION służy do łączenia wyników zbiorów wynikowych dwóch lub więcej wyrażeń SELECT.
Proszę zauważyć, że wyrażenie SELECT wewnętrzne UNION musi mieć tę samą liczbę kolumn. Kolumny również muszą mieć podobne typy danych. Ponadto, kolejność kolumn w każdej wyrażeniu SELECT musi być taka sama.
Gramatyka SQL UNION
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
Uwaga:Domyślnie, operator UNION wybiera różne wartości. Jeśli dozwolone są powtarzające się wartości, użyj UNION ALL.
Gramatyka SQL UNION ALL
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
Ponadto, nazwy kolumn w wynikach UNION zawsze są równe nazwom kolumn w pierwszym zapytaniu SELECT.
Poniżej znajduje się oryginalna tabela używana w przykładzie:
Employees_China:
E_ID | E_Name |
---|---|
01 | Zhang, Hua |
02 | Wang, Wei |
03 | Carter, Thomas |
04 | Yang, Ming |
Employees_USA:
E_ID | E_Name |
---|---|
01 | Adams, John |
02 | Bush, George |
03 | Carter, Thomas |
04 | Gates, Bill |
Użycie polecenia UNION
Przykład
Pokaż wszystkie różne nazwiska pracowników w Chinach i USA:
SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA
Wynik
E_Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Gates, Bill |
Uwaga:To polecenie nie może wyświetlić wszystkich pracowników w Chinach i USA. W powyższym przykładzie mamy dwóch pracowników o tych samych imionach, ale tylko jeden z nich został wyświetlony. Polecenie UNION wybiera tylko różne wartości.
UNION ALL
Polecenie UNION ALL i UNION są prawie równoważne, ale polecenie UNION ALL wyświetla wszystkie wartości.
SQL Zdanie 1 UNION ALL SQL Zdanie 2
Użycie polecenia UNION ALL
Przykład:
Pokaż wszystkich pracowników w Chinach i USA:
SELECT E_Name FROM Employees_China UNION ALL SELECT E_Name FROM Employees_USA
Wynik
E_Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Carter, Thomas |
Gates, Bill |
- Poprzednia strona SQL Full Join
- Następna strona SQL Select Into