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

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

就是两个集中不重复的部分。例如
SELECT * FROM
A
EXCEPT
SELECT * FROM B
这个的意思是,凡是不出现在B表中的A表的行

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

就是两个集中共同的部分。例如
SELECT * FROM
A
INTERSECT
SELECT * FROM B
这个的意思是,同时出现在A和B中的记录

测试如下:

  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. --EXCEPT结果集为
  26. --1 t1
  27. --3 t3
  28. --4 t4
  29. --INTERSECT结果集为
  30. --2 t2

 

union 与union All的区别

--并集UNION
--UNION与UNION ALL的区别是: union会删除重复值,也就是说A和B中重复的行,最终只会出现一次,而union all则会保留重复行。
SELECT * FROM t1
 UNION
 SELECT * FROM t2
 
SELECT * FROM t1
 UNION  all
 SELECT * FROM t2

最新文章

  1. 高效 Java Web 开发框架 JessMA v3.5.1
  2. GreenDao关系建表
  3. SQL中插入单引号,新增修改删除
  4. Understanding mysql max_connect_errors
  5. zoj 3805 Machine
  6. Bash判断文件是否存在
  7. 设置textView或者label的行间距方法
  8. 7z文件格式及其源码的分析
  9. 使用LIBUSB实现和自定义通讯设备通讯--MFC代码在末尾
  10. Material Design学习-----TextInputLayout
  11. SocketServer模块
  12. JPA常用注解
  13. HDU 2689 Sort it【树状数组】
  14. 转 InnoDB Error Handling
  15. 【原创】Arduino、arm、树莓派与单片机
  16. 在Ubuntu中搭建KMS服务器
  17. div展开与收起(鼠标点击)
  18. mpvue最佳实践 , 美团出的一个小程序框架
  19. 《JAVA与模式》之模板方法模式
  20. jquery mobile mobiscroll 日期插件使 用mobiscroll

热门文章

  1. sparkSQL——DataFrame&Datasets
  2. vue2.0中配置文件路径
  3. 设置 vadio 和checkbox是否选中
  4. 基于tomcat集群做session共享
  5. 20145314郑凯杰 《Java程序设计》实验二 实验报告
  6. $(document).ready(function(){})和$(window).load(function(){})的区别
  7. MR案例:Map-Join
  8. Alluxio集成Hadoop
  9. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
  10. An Example for Javascript Function Scoping and Closure