UNION

作者:vkvi 来源:ITPOW(原创) 日期:2007-12-8

UNION 将两个或两个以上的 SELECT 查询组成一个结果集。

语法:

select_statement UNION [ALL] select_statement
  • select_statement SELECT 查询语句。
  • ALL 表示是否将结果中的重复项保留,如果指明 ALL,则允许重复项,如果没有指明 ALL,则不会包含重复项。

示例(摘自微软):

Table1Table2 具有相同的两列结构。

Table1     Table2  
ColumnA ColumnB   ColumnC ColumnD
char(4) int   char(4) int
------- ---   ------- ---
abc 1   ghi 3
def 2   jkl 4
ghi 3   mno 5


下面的查询在这两个表之间创建 UNION 运算:

SELECT * FROM Table1
UNION
SELECT * FROM Table2

下面是结果集:

ColumnA  ColumnB
-------  --------
abc      1
def      2
ghi      3
jkl      4
mno      5

说明:

  • 两个查询语句的字段数目必须相同。
  • 两个查询语句的字段名称可以不一样,结果集的字段名称使用第一个查询的字段名称。
  • 两个查询语句的字段类型必须一样或可以隐式转换,如果发生转换,则低优先级类型的字段转换成高优先级类型的字段。请参见 T-SQL 数据类型的优先顺序
  • ALL 不仅会将两个查询中重复的记录去掉只保留一个,还会将同一个查询中重复的记录去掉只保留一个,就像对结果集使用了 distinct 一样。
相关文章