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. boost_1.63.0编译VS2013

    编译 boost 库的步骤: 从官网下载最新版本的 boost 库(目前最新版本为:boost_1_63_0):下载地址:http://www.boost.org/users/download/ 解压 ...

  2. JavaScript之引用类型(Array类型)

    除了Object类型,Array是ECMAScript中最常用的类型了. 与其他语言不同的是,ECMAScript数组的每一项可以保存任何类型的数据. 而且,ECMAScript数组的大小是可以动态调 ...

  3. Codeforces Beta Round #3 C. Tic-tac-toe 模拟题

    C. Tic-tac-toe 题目连接: http://www.codeforces.com/contest/3/problem/C Description Certainly, everyone i ...

  4. Codeforces Beta Round #2 A. Winner 水题

    A. Winner 题目连接: http://www.codeforces.com/contest/2/problem/A Description The winner of the card gam ...

  5. ms_sql_server_architecture

    We have classified the architecture of SQL Server into the following parts for easy understanding − ...

  6. SAP MM 模块常用的数据表

    SAP MM模块常用数据表: Table Table Class Application Class Data Class Description EBAN TRANSP  ME Transactio ...

  7. python笔记12-python多线程之事件(Event)

    前言 小伙伴a,b,c围着吃火锅,当菜上齐了,请客的主人说:开吃!,于是小伙伴一起动筷子,这种场景如何实现 Event(事件) Event(事件):事件处理的机制:全局定义了一个内置标志Flag,如果 ...

  8. linux如何修改登录用户密码

    root登录后,passwd root可以修改root帐号的密码 其他具有sudo权限的用户登录后,sudo passwd root可以修改根帐号的密码 sudo passwd admin可以修改ad ...

  9. 数组类型参数传递问题:$.ajax传递数组的traditional参数传递必须true

    数组类型参数传递: 若一个请求中包含多个值,如:(test.action?tid=1&tid=2&tid=3),参数都是同一个,只是指定多个值,这样请求时后台会发生解析错误,应先使用 ...

  10. 【笔记】关于require.js 的用法

    最近忙于学校的一个新网站建设,对于以前的前端程序编写方式的不正规特意上网学习了require.js 的用法,使此次的工程更加有条理同时符合当前前端的开发模式——前端模块化. 网上有不少很好的学习文章这 ...