T-SQL Part X: UNION, EXCEPT and INTERSECT

 

MSDN上关于EXCEPT和INTERSECT的文档。MSDN上关于UNION的文档

值得注意的是,UNION其实有两种,一种是普通的UNION,另外一种是UNION ALL。加上EXCEPT和INTERSECT构成了T-SQL中的四种Set操作。

  • UNION ALL:把左表和右表合成一张表并返回;
  • UNION:把左表和右表去除重复项后,合成一张表并返回。换言之,UNION的结果集中没有重复项。
  • EXCEPT:去除左表中曾出现在右表中的项,将左表中剩余项返回。换言之,EXCEPT返回一个结果集,其中所有的项都只在左表中出现且并未出现在右表中。
  • INTERSECT:返回左表和右表都出现过的项。

示例一,找出所有没有生成Order的Customer:

SELECT [ID] FROM Customers
EXCEPT
SELECT [ID] FROM Orders;
GO

 

示例二,找出所有既是Customer又是Vendor:

SELECT [ID] FROM Customers
INTERSECT
SELECT [ID] FROM Vendors;
GO

 

是为之记。
Alva Chien
2016.6.15

 

posted @ 2016-06-15 12:23  会拍照能修图的码农  阅读(108)  评论(0)    收藏  举报