Operator UNION i UNION ALL w SQL

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