SQL UNION en UNION ALL-operator

SQL UNION-operator

De UNION-operator wordt gebruikt om de resultaten van twee of meerdere SELECT-statementen te combineren.

Let op, de SELECT-statement binnen UNION moet hetzelfde aantal kolommen hebben. De kolommen moeten ook vergelijkbare datatypes hebben. Bovendien moet de volgorde van de kolommen in elke SELECT-statement hetzelfde zijn.

SQL UNION syntaxis

table_name1 SELECT column_name(s) SQL UNION ALL syntaxis
Opsommen van alle verschillende werknemersnamen in China en de Verenigde Staten:
table_name1 SELECT column_name(s) FROM

UNIONSQL UNION syntaxis

Standaard selecteert de UNION operator verschillende waarden. Als je herhalde waarden toestaat, gebruik dan UNION ALL.

table_name1 SELECT column_name(s) SQL UNION ALL syntaxis
SELECT E_Name FROM Employees_China
table_name1 SELECT column_name(s) FROM

table_name2

Bovendien zijn de kolomnamen in de UNION resultaten altijd gelijk aan de kolomnamen in de eerste SELECT verklaring in de UNION.

Onderstaand voorbeeld gebruikt de oorspronkelijke tabel:

Employees_USA: Resultaat
E_ID E_Name
01 Zhang, Hua
02 Bush, George
03 Wang, Wei

Employees_China:

Employees_USA: Resultaat
E_ID Yang, Ming
01 Adams, John
02 Bush, George
03 Carter, Thomas

04

Gebruik van UNION commando

Voorbeeld

Lijst met alle werknemers in China en de Verenigde Staten:
Opsommen van alle verschillende werknemersnamen in China en de Verenigde Staten:
UNION ALL

SELECT E_Name FROM Employees_USA

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

UNIONOpmerking:

SELECT E_Name FROM Employees_China

Deze opdracht kan niet alle werknemers in China en de Verenigde Staten opsommen. In het bovenstaande voorbeeld zijn er twee werknemers met dezelfde naam, van wie er maar één is opgesomd. De UNION opdracht kiest alleen verschillende waarden.

Verklaring 1 De UNION ALL commando's en UNION commando's zijn bijna equivalente, maar de UNION ALL commando's zullen alle waarden opsommen.
SELECT E_Name FROM Employees_China
Verklaring 1 SQL

Verklaring 2

Gebruik van UNION ALL commando

Voorbeeld:

Lijst met alle werknemers in China en de Verenigde Staten:
SELECT E_Name FROM Employees_China
UNION ALL

SELECT E_Name FROM Employees_USA

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