SQL UNION och UNION ALL-operatorn

SQL UNION-operatorn

UNION-operatorn används för att sammanfoga resultatuppsättningar från två eller flera SELECT-satser.

Vänligen notera att SELECT-satsen inom UNION måste ha samma antal kolumner. Kolumner måste också ha liknande datatyper. Dessutom måste kolumnordningen vara densamma i varje SELECT-sats.

SQL UNION-syntaks

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

Kommentar:Som standard väljer UNION-operatören olika värden. Om upprepade värden är tillåtna, använd UNION ALL.

SQL UNION ALL-syntaks

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

Dessutom är kolumnnamnen i UNION-resultatet alltid lika med kolumnnamnen i det första SELECT-uttrycket i UNION.

Följande exempel använder ursprungliga 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

Använd UNION-kommandot

Exempel

Listar alla olika anställda namn i Kina och 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

Kommentar:Detta kommando kan inte lista alla anställda i Kina och USA. I det tidigare exemplet har vi två anställda med samma namn, och bara en av dem listades. UNION-kommandot väljer bara olika värden.

UNION ALL

UNION ALL-kommandot och UNION-kommandot är nästan lika, men UNION ALL-kommandot listar alla värden.

SQL Statement 1
UNION ALL
SQL Statement 2

Använd UNION ALL-kommandot

Exempel:

Listar alla anställda i Kina och 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