SQL UNION und UNION ALL-Operator

SQL UNION-Operator

Der UNION-Operator wird verwendet, um die Ergebnisse von zwei oder mehreren SELECT-Anweisungen zu kombinieren.

Bitte beachten Sie, dass die SELECT-Anweisung innerhalb von UNION die gleiche Anzahl an Spalten haben muss. Die Spalten müssen auch ähnliche Datentypen haben. Gleichzeitig muss die Reihenfolge der Spalten in jeder SELECT-Anweisung identisch sein.

SQL UNION Syntax

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Anmerkung:Standardmäßig wählt der UNION-Operator unterschiedliche Werte. Wenn wiederholte Werte erlaubt sind, verwenden Sie UNION ALL.

SQL UNION ALL Syntax

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

Zusätzlich sind die Spaltennamen in den UNION-Ergebnissen immer gleich den Spaltennamen im ersten SELECT-Befehl von UNION.

Die in den folgenden Beispielen verwendeten Originaltabellen:

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

Verwendung des UNION Befehls

Beispiel

Liste alle verschiedenen Angestelltenamen in China und den USA auf:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Ergebnis

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

Anmerkung:Dieser Befehl kann nicht alle Angestellten in China und den USA auflisten. In diesem Beispiel gibt es zwei Angestellte mit dem gleichen Namen, von denen nur einer aufgelistet wurde. Der UNION Befehl wählt nur unterschiedliche Werte.

UNION ALL

Der UNION ALL Befehl und der UNION Befehl sind fast äquivalent, aber der UNION ALL Befehl listet alle Werte auf.

SQL Anweisung 1
UNION ALL
SQL Anweisung 2

Verwendung des UNION ALL Befehls

Beispiel:

Liste aller Angestellten in China und den USA auf:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Ergebnis

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill