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
相关文章
相关标签/搜索