码迷,mamicode.com
首页 > 数据库 > 详细

SQL高级应用(UNION、UNION ALL)

时间:2015-05-04 17:32:27      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

SQL UNION和 UNION ALL操作符

  UNION操作符用于合并两个或多个 SELECT语句的结果集

  请注意,UNIOB 内部的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_IDE_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:

E_IDE_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

 

使用 UNION

  列出所有在中国和美国的不同的雇员名

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

  结果

 

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

  例子:列出在中国和美国的所有的雇员

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

  结果

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

SQL高级应用(UNION、UNION ALL)

标签:

原文地址:http://www.cnblogs.com/xumenger/p/4476401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!