现在的位置: 首页 > 综合 > 正文

SQL Server 中关于EXCEPT和INTERSECT的用法

2013年10月22日 ⁄ 综合 ⁄ 共 1038字 ⁄ 字号 评论关闭

熟练使用SQL Server中的各种用法会给查询带来很多方便。今天就介绍一下EXCEPT和INTERSECT。注意此语法仅在SQL Server 2005及以上版本支持。

EXCEPT是指在第一个集合中存在,但是不存在于第二个集合中的数据。

INTERSECT是指在两个集合中都存在的数据。

测试如下:

[c-sharp] view
plain
copy

  1. create table t1(id int,mark char(2))  
  2. go  
  3. create table t2(id int,mark char(2))  
  4. go  
  5. insert into t1  
  6.     select 1,'t1' union all  
  7.     select 2,'t2' union all  
  8.     select 3,'t3' union all  
  9.     select 4,'t4'  
  10. go  
  11. insert into t2  
  12.     select 2,'t2' union all  
  13.     select 3,'m3' union all  
  14.     select 5,'m5' union all  
  15.     select 6,'t6'  
  16. go  
  17. select * from t1  
  18. EXCEPT  
  19. select * from t2  
  20. go  
  21. select * from t1  
  22. INTERSECT  
  23. select * from t2  
  24. go  
  25.   
  26. --EXCEPT结果集为  
  27. --1 t1  
  28. --3 t3  
  29. --4 t4  
  30.   
  31. --INTERSECT结果集为  
  32. --2 t2  

 

 

EXCEPT和INTERSECT的优先级:

为了测试它们之间的优先级,运行下面的测试代码:

[c-sharp] view
plain
copy

  1. create table t3(int id,mark char(2))  
  2. go  
  3. insert into t3  
  4.     select 3,'t3' union all  
  5.     select 3,'r3' union all  
  6.     select 5,'m5' union all  
  7.     select 5,'r5' union all  
  8.     select 7,'b7' union all  
  9.     select 8,'b8'  
  10. go  
  11. select * from t1  
  12. EXCEPT  
  13. select * from t2  
  14. INTERSECT  
  15. select * from t3  

抱歉!评论已关闭.