SQL UNION 和 UNION ALL 操做符

SQL UNION 操做符

UNION 操做符用於合併兩個或多個 SELECT 語句的結果集。spa

請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有類似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。code

SQL UNION 語法

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

註釋:默認地,UNION 操做符選取不一樣的值。若是容許重複的值,請使用 UNION ALL。table

SQL UNION ALL 語法

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

另外,UNION 結果集中的列名老是等於 UNION 中第一個 SELECT 語句中的列名。數據類型

下面的例子中使用的原始表:

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

使用 UNION 命令

實例

列出全部在中國和美國的不一樣的僱員名:語法

SELECT E_Name FROM Employees_China

SELECT E_Name FROM Employees_USAUNION

結果

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

註釋:這個命令沒法列出在中國和美國的全部僱員。在上面的例子中,咱們有兩個名字相同的僱員,他們當中只有一我的被列出來了。UNION 命令只會選取不一樣的值。數據

UNION ALL

UNION ALL 命令和 UNION 命令幾乎是等效的,不過 UNION ALL 命令會列出全部的值。註釋

SQL Statement 1
UNION ALL
SQL Statement 2

使用 UNION ALL 命令

實例:

列出在中國和美國的全部的僱員:tab

SELECT E_Name FROM Employees_China

SELECT E_Name FROM Employees_USAUNION ALL

結果

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill
相關文章
相關標籤/搜索