SQL UNION 和 UNION ALL

UNION

UNION命令用于从两个表中选取相关的信息,很类似JOIN命令。不过,当使用UNION命令时,所有被选取的列的数据类型应该是相同的。

注释:如使用UNION,那么只有不同的值会被选取。

SQL Statement 1
UNION
SQL Statement 2

Employees_Norway:

E_ID E_Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

Employees_USA:

E_ID E_Name
01 Turner, Sally
02 Kent, Clark
03 Svendson, Stephen
04 Scott, Stephen

使用UNION命令

实例

列出所有在挪威和美国的不同的雇员名:

SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

结果

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

注释:这个命令无法列出在挪威和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION命令只会选取不同的值。

UNION ALL

UNION ALL命令和UNION命令几乎是等效的,不过UNION ALL命令会列出所有的值。

SQL Statement 1
UNION ALL
SQL Statement 2

使用UNION ALL命令

实例:

列出在挪威和美国的所有的雇员:

SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA

结果

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen
posted @ 2008-01-21 15:30  weiwei~  阅读(866)  评论(0编辑  收藏  举报