SQL UNION操作符
UNION操作符用于合并两个或多个SELECT语句的结果集。
请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。
SQL UNION语法
SELECT column_name(s)FROM table_name1 union SELECT column_name(s)FROM table_name2
注意:默认地,UNION操作符选取不同的值。如果允许重复的值,请使用UNION ALL。
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 | 张华 |
| 02 | 王伟 |
| 03 | 卡特,托马斯 |
| 04 | 杨明 |
Employees_USA:
| E_ID | E_Name |
|---|---|
| 01 | 亚当斯,约翰 |
| 02 | 布什,乔治 |
| 03 | 卡特,托马斯 |
| 04 | 盖茨,比尔 |
使用UNION命令
实例
列出所有在中国和美国的不同的雇员名:
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA
结果
| E_Name |
|---|
| 张华 |
| 王伟 |
| 卡特,托马斯 |
| 杨明 |
| 亚当斯,约翰 |
| 布什,乔治 |
| 盖茨,比尔 |
注释:这个命令无法列出在中国和美国的所有雇员在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了.UNION命令只会选取不同的值。
UNION ALL
UNION ALL命令和UNION命令几乎是等效的,不过UNION ALL命令会列出所有的值。
SQL语句1 UNION ALL SQL语句2
使用UNION ALL命令
实例:
列出在中国和美国的所有的雇员:
SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA
结果
| E_Name |
|---|
| 张华 |
| 王伟 |
| 卡特,托马斯 |
| 杨明 |
| 亚当斯,约翰 |
| 布什,乔治 |
| 卡特,托马斯 |
| 盖茨,比尔 |
本文详细介绍了SQL中的UNION和UNION ALL操作符的用法及其区别。UNION用于合并两个或多个SELECT语句的结果集,并自动去除重复记录;而UNION ALL则保留所有记录,包括重复项。通过具体例子展示了如何使用这两个操作符来处理不同场景的数据合并需求。
647

被折叠的 条评论
为什么被折叠?



