1、intersect运算符
intersect运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (intersect  all),不消除重复行。
2、minus运算符
minus运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 all随 minus一起使用时 (minus all),不消除重复行。
3、union运算符

.这三个关键字主要是对数据库的查询结果进行操作

union运算符是将两个或更多查询的结果组合为单个结果集

table1:
f_name  f_date
name1   2009-6-1
name2   2009-6-2

table2:
f_name  f_date
name3   2009-6-2
name4   2009-6-3

select f_date from table1 intersect select date from table2
结果:
name2   2009-6-2

select f_date from table1 union select f_date from table2
结果:

2009-6-1
2009-6-2
2009-6-3

注:except
只能用于SQLserver
在SQLserver中:
select f_date from table1 except select f_date from table2
结果:
2009-6-1
在oracle中用minus:
select f_date from table1 minus select f_date from table2
结果:
2009-6-1

并集 :union: select × from a union (all) select × from b aUb 
交集: intersect: select × from a intersect select × from b anb 
差集: minus: select × from a minus select × from b a-b

SQLServer中通过intersect,union,except和三个关键字对应交、并、差三种集合运算。

他们的对应关系可以参考下面图示

测试示例:

构造A,B两个数据集

  1. A:1,2,3,4
  2. B:1,2,5
  3. WITH A AS
  4. (SELECT '1' tno
  5. UNION ALL SELECT  '2' UNION ALL SELECT  '3' UNION ALL SELECT  '4'
  6. ),
  7. B AS(SELECT '1' tno
  8. UNION ALL SELECT  '2' UNION ALL SELECT  '5')

查询示例:

1 Union 取合集并过滤重复数据

  1. --1 Union 取合集并过滤重复数据
  2. --结果显示: 1,2,3,4,5
  3. SELECT * FROM A
  4. UNION
  5. SELECT * FROM B;

2 Union all 取合集不过滤重复数据

  1. --2 Union all 取合集不过滤重复数据
  2. --结果显示:1,2,3,4,1,2,5
  3. SELECT * FROM A
  4. UNION  all
  5. SELECT * FROM B;

3 Intersect 取交集(两个表中都有数据)

  1. --3 Intersect 取交集
  2. --结果显示:1,2
  3. SELECT * FROM A
  4. Intersect
  5. SELECT * FROM B;

4 except 取差集(取A-B的记录)

    1. --4 except 取差集
    2. --结果显示:3,4
    3. SELECT * FROM A
    4. except
    5. SELECT * FROM B;

SQL中intersect、union、minus和except 运算符的更多相关文章

  1. SQL中的union

    在SQL中,如果我们查询一个班级的考试成绩数据,再统计考试成绩的总和,我们使用以下两条语句: select StudentName,Grade from Student select '总成绩',SU ...

  2. SQL中的union,except,intersect用法

    限制:所有查询中的列数和列的数序必须相同 union all:完全整合两个结果集查出所有数据 union:查出两个表的数据并且去除重复的数据 except:去重之后只会保留第一个表中的数据,查询a表在 ...

  3. oracle 的交并差函数,intersect;union;minus。

    创建表并添加数据: --创建TABLE_A create table TABLE_A ( A ), B ) ); --给TABLE_A添加数据 insert into TABLE_A values(' ...

  4. Sql中的union和union all的讲解

    SQL UNION 和 UNION ALL操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相 ...

  5. sql 中 并集union和union all的使用区别

    union  操作符用于合并两个或多个 SELECT 语句的结果集,并且去除重复数据,按照数据库字段的顺序进行排序. 例 SELECT NAME FROM TABLE1UNIONSELECT EMP_ ...

  6. SQL 中的 UNION 和UNION ALL 的区别

    UNION表示“并”,当用的时候,系统会自动将重复的元组去掉,如果要保留重复元组则就用UNION ALL UNION 会合并重复数据,(由于要合并重复,该操所 隐藏着一个 排序的操作.)UNION A ...

  7. Oracle中的Union、Union All、Intersect、Minus

    Oracle中的Union.Union All.Intersect.Minus  众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考. 假设我们有一个表Student,包括 ...

  8. Oracle中INTERSECT,MINUS,UNION,UNION ALL用法

    intersect 就是交集minus 就是差集 交集就是两个结果集中都有的元素 比如 select uid from tb1 intersect select uid from tb2 那么既存在t ...

  9. LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用

    Ø  前言 LINQ to SQL 中需要对两个或多个数据集进行操作,比如:合并.取交集等,主要使用下面四个方法,这四个方法都是 System.Linq.IQueryable<out T> ...

随机推荐

  1. view加阴影和边框

    UIImageView *imgvPhoto  = [UIImageView alloc] init]; //添加边框   CALayer *layer = [_imgvPhoto layer];   ...

  2. django, form.errors处理

    from.errors其实就是一个字典, 可以利用for error in form.errors.values, 或者for key,  value in form.errors遍历得到其中的数据

  3. 《深入理解Spark-核心思想与源码分析》(四)第四章存储体系

    天行健,君子以自强不息:地势坤,君子以厚德载物.——<易经> 本章导读 Spark的初始化阶段.任务提交阶段.执行阶段,始终离不开存储体系. Spark为了避免Hadoop读写磁盘的I/O ...

  4. Codeforces Round #345 (Div. 1) D. Zip-line 上升子序列 离线 离散化 线段树

    D. Zip-line 题目连接: http://www.codeforces.com/contest/650/problem/D Description Vasya has decided to b ...

  5. Visual Studio自动生成XML类和JSON类

    Visual Studio 2013及以上版本提供了一个非常实用的功能.可以根据xml文档或json文档自动生成类.有了这个工具反序列化时就不用再手动写类并且实现了强类型操作. 步骤 1. 准备一份j ...

  6. 普通项目转换成maven项目

    参看文档:http://czj4451.iteye.com/blog/1983889 maven仓库:http://mvnrepository.com/     基本步骤如下: Configue--& ...

  7. OpenGL ES入门09-GLSL实现常见特效 [转]

    本文转自简书,原文地址http://www.jianshu.com/p/e4a8c83cd37 本文是关于OpenGL ES的系统性学习过程,记录了自己在学习OpenGL ES时的收获. 这篇文章的目 ...

  8. Google Python 命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  9. 转:用十条命令在一分钟内检查Linux服务器性能

    转自:http://www.infoq.com/cn/news/2015/12/linux-performance?utm_campaign=rightbar_v2&utm_source=in ...

  10. Android-自己定义PopupWindow

    Android-自己定义PopupWindow 2014年5月12日 PopupWindow在应用中应该是随处可见的,非经常常使用到,比方在旧版本号的微信其中就用到下拉的PopupWindow.那是自 ...