SQL UNION ja UNION ALL-operaattorit

SQL UNION-operaattori

UNION-operaattori käytetään kahden tai useamman SELECT-lauseen tulosten yhdistämiseen.

Huomaa, että UNION-sisällä olevan SELECT-lauseen on olla saman verran sarakkeita. Sarakkeiden on myös oltava samanlaisia tietotyyppejä. Lisäksi jokaisen SELECT-lauseen sarakkeiden järjestys on olla sama.

SQL UNION -syntaksi

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

Huomautus:Oletusarvoisesti UNION-operaattori valitsee vain erilaiset arvot. Jos sallit toistuvat arvot, käytä UNION ALL.

SQL UNION ALL -syntaksi

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

Lisäksi UNION-tulosten sarakkeiden nimet ovat aina yhtä kuin ensimmäisessä SELECT-lauseessa olevat sarakkeet.

Alla olevassa esimerkissä käytetään alkuperäisiä tauluja:

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

Käytä UNION -komentoa

Esimerkki

Luettelo kaikista Kiinassa ja Yhdysvalloissa eri nimillä olevista työntekijöistä:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Tulokset

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

Huomautus:Tämä komento ei voi lukea kaikkia Kiinassa ja Yhdysvalloissa työskenteleviä työntekijöitä. Yllä olevassa esimerkissä meillä on kaksi samalla nimellä olevaa työntekijää, joista vain yksi on lueteltu. UNION -komento valitsee vain erilaiset arvot.

UNION ALL

UNION ALL -komento ja UNION -komento ovat lähes yhtä arvoisia, mutta UNION ALL -komento lukee kaikki arvot.

SQL Lausunto 1
UNION ALL
SQL Lausunto 2

Käytä UNION ALL -komentoa

Esimerkki:

Luettelo kaikista Kiinassa ja Yhdysvalloissa työskentelevistä työntekijöistä:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Tulokset

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