项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

经常需要对一些结果集进行诸如求并集,交集等操作。在网上看到一些不错的资料,特意转载过来。

为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。
表:Person_1魏国人物

表:Person_2蜀国人物

1.Union求并集

Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。
1.1、限定条件
要是用Union来连接结果集,有4个限定条件。
(1)、子结果集要具有相同的结构。
(2)、字结果集的列数必须相同。
(3)、子结果集对应的数据类型必须可以兼容。
(4)、每个子结果集不能包含order by和compute子句。

1.2、语法形式

select_statement union [all] select_statement

all代表最终的结果集中将包含所有的行,而不能删除重复行。

SELECT Name FROM Person_1
UNION
SELECT Name FROM Person_2

生成的结果为:

注意到重复记录,孙权与周瑜仅仅显示了一个。下面来将UNION替换成UNION ALL看看是什么结果:

SELECT Name FROM Person_1
UNION ALL
SELECT Name FROM Person_2

注意到重复记录,孙权与周瑜出现了两次,这就是UNION ALL 与 UNION的不同之处。

2.Except形成差集

Except可以对两个或多个结果集进行连接,形成“差集”。返回左边结果集合中已经有的记录,而右边结果集中没有的记录。
限定条件:
1、子结果集要具有相同的结构。
2、子结果集的列数必须相同。
3、子结果集对应的数据类型必须可以兼容。
4、每个子结果集不能包含order by 和 compute子句。

语法形式:

select_statement except select_statement 

自动删除重复行。

SELECT Name FROM Person_1
EXCEPT
SELECT Name FROM Person_2


留意到表Person_2有的,孙权周瑜已被去除。

3.InterSect形成交集

InterSect可以对两个或多个结果集进行连接,形成“交集”。返回左边结果集和右边结果集中都有的记录。
1、限定条件
要是用Except来连接结果集,有4个限定条件。
(1)、子结果集要具有相同的结构。
(2)、子结果集的列数必须相同。
(3)、子结果集对应的数据类型必须可以兼容。
(4)、每个子结果集不能包含order by或compute子句。

2、语法形式

select_statement intersect select_statement
SELECT Name FROM Person_1
INTERSECT
SELECT Name FROM Person_2

返回的结果如下:

留意到只取两张表都有的记录(周瑜,孙权),这就是所谓的交集。

4.结果集排序

SELECT Name FROM Person_1
INTERSECT
SELECT Name FROM Person_2
ORDER BY Name DESC    --此处的字段名相同了,如果不同,请切记排序列名,只能够是第一个表的列名

这里只有两点要注意
1.ORDER BY是对整个运算后的结果排序,并不是对单个数据集。
2.ORDER BY后面排序的字段名称是第一个数据集的字段名或者别名。

原文链接:
http://www.cnblogs.com/kissdodog/p/3152743.html
不知道是不是原始出处,如果原作者看到,请与我联系。

SQL操作结果集-并集,差集,交集,结果集排序相关推荐

  1. SQL取并集 差集 交集

    SQL并集(UNIOIN 去重 UNIOIN ALL不去重)交集(Intersect)差集(EXCEPT) MySQL仅支持并集,intersect用join替换,except用not in替换其他要 ...

  2. Set 的合集 并集 差集

    合集 var arr1 = [1,2,3,3,5,4,7]; var arr2 = [2,3,6]; function union() {//先将数组去重let s1 = new Set(arr1); ...

  3. Python中获取交集并集差集的方法

    1. 获取两个list 的交集 #方法一: a=[2,3,4,5] b=[2,5,8] ​ tmp = [val for val in a if val in b]         #列表推导式求的两 ...

  4. PHP求并集,交集,差集

    PHP求并集,交集,差集 一.总结 一句话总结:在php中如果我想要对两个数组进行如并集.交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersec ...

  5. MySQL求交集 并集 差集

    MySQL求交集 并集 差集 交集 两个表之间相同的 并集 两个表之间的总和 ps: union 自带去重 差集 两个表直接的差值

  6. sql查询两个表结果相减_SQL 操作结果集 -并集、差集、交集、结果集排序

    操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物. 表:Person_1魏国人物 表:Person_2蜀国人物 A.Union形成并集 Union可以对两个或 ...

  7. SQL操作结果——并集、差集、交集

    针对sql操作结果,经常面临对数据取并集.差集和交集的问题,如何能更高效更快速的对数据进行操作呢? 首先需要有两个表, 这两个表需要有相同的筛选字段列,以下详解... 为以下展示操作,建两个数据表: ...

  8. sql结果集进行诸如求并集,交集等操作

    算法大数据qq交流群:397173819 经常需要对一些结果集进行诸如求并集,交集等操作.在网上看到一些不错的资料,特意转载过来. 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为 ...

  9. Python:列表、集合等交集、并集、差集、非集简介及其代码实现之详细攻略

    Python:列表.集合等交集.并集.差集.非集简介及其代码实现之详细攻略 目录 列表.集合等交集.并集.差集.非集简介及其代码实现之详细攻略 1.交集:A & B & C & ...

  10. 集合判断哪非空 、2个集合取交集/并集/差集

    文章目录 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-co ...

最新文章

  1. 猎豹MFC--列表控件ListControl
  2. 高级特性(2)- XML
  3. goland go test 多个文件_这个代码怎么会编译不通过?Goland 新手常见问题解决:GOPATH 和 Go Modules 编译不成功...
  4. java实用教程——组件及事件处理——ItemEvent事件(设置字体类型)
  5. adb命令查看手机电量_desired Capabilities和aapt命令查看手机包信息
  6. 20190804:有效的括号(误删补发)
  7. jsx 调用php,JavaScript_JavaScript的React框架中的JSX语法学习入门教程,什么是JSX? 在用React写组件的 - phpStudy...
  8. SQLSERVER不同数据库联表查询
  9. 关于bat安装与卸载服务脚本
  10. GPX文件格式适用于GPS定位的模拟以及生成文件
  11. java读取propertiies文件例子
  12. 装完系统还要装什么_一键重装系统后需要干嘛
  13. 南航里程每年清空吗_年末提醒| 除了换机票,那些即将清零的航空里程还有什么用...
  14. Flash游戏教程:控制物体运动三法
  15. pcolor和surf画出的图形转存为eps或pdf格式出现横竖斜白色虚线网格,完美去掉!!!
  16. 移动端框架 - Bootstrap
  17. 遗传算法(GA/NSGA)优化神经网络 GA-BP
  18. 多线程有几种实现方法?同步有几种实现方法
  19. C语言 计算存款利息
  20. 工作中如何应对那些不讲武德的人?

热门文章

  1. [译] REST API 已死,GraphQL 长存
  2. 谈谈python的from __future__ import absolute_import
  3. ASP.NET MVC4 乱七八糟罗列
  4. STL 标准容器的选择
  5. 搭建一个wordpress
  6. 查看oracle数据库服务器的名字
  7. 移动脱机 Outlook 数据文件 (.ost)
  8. 用C#实现***程序
  9. 彻底搞懂git rebase命令
  10. volatile分析