用集合运算符组合查询
SQL SERVER 2008支持4种集合运算:UNION、UNION ALL、EXCEPT 以及 INTERSECT 集合运算符.
集合运算符能够将两个或更多外层查询组合成单个查询。
执行用这些集合运算符连接的每个查询并组合各个查询的结果。
根据运算符不同,产生不同的结果。
1、UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。派生表的每一行不是来自 TABLE1 就是来自 TABLE2。集合含义TABLE1和TABLE2的并集。
2、UNION ALL
UNION ALL运算符返回两个输入中所有行的结果,不会去除重复行。
3、EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 集合含义:TABLE1-TABLE2。
4、INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 集合含义:TABLE1和TABLE2的交集。