SQL UNION og UNION ALL-operatorer

SQL UNION-operatoren

UNION-operatoren bruges til at kombinere resultaterne af to eller flere SELECT-sætninger.

Bemærk venligst, SELECT-sætningen inde i UNION skal have samme antal kolonner. Kolonnerne skal også have lignende datatyper. Samtidig skal rækkefølgen af kolonnerne i hver SELECT-sætning være den samme.

SQL UNION syntaks

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

Bemærk:Standardmæssigt vælger UNION-operatoren forskellige værdier. Hvis gentagne værdier er tilladt, skal du bruge UNION ALL.

SQL UNION ALL syntaks

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

Desuden er kolonnenavne i UNION-resultatet altid ens med kolonnenavne i den første SELECT-sætning i UNION.

Følgende eksempel bruger de oprindelige tabeller:

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

Brug UNION-kommandoen

Eksempel

Oplist alle forskellige ansatte i Kina og USA:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Resultat

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

Bemærk:Denne kommando kan ikke liste alle ansatte i Kina og USA. I det ovenstående eksempel har vi to medarbejdere med samme navn, og kun én af dem blev listet. UNION-kommandoen vælger kun forskellige værdier.

UNION ALL

UNION ALL-kommandoen og UNION-kommandoen er næsten ligeså effektive, men UNION ALL-kommandoen vil liste alle værdierne.

SQL Udsagn 1
UNION ALL
SQL Udsagn 2

Brug UNION ALL-kommandoen

Eksempel:

Oplist alle ansatte i Kina og USA:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Resultat

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