SQL 操作结果集 -并集、差集、交集、结果集排序
操作结果集
为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。
表:Person_1魏国人物
表:Person_2蜀国人物
A、Union形成并集
Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。
1、限定条件
要是用Union来连接结果集,有4个限定条件。
(1)、子结果集要具有相同的结构。
(2)、字结果集的列数必须相同。
(3)、子结果集对应的数据类型必须可以兼容。
(4)、每个子结果集不能包含order by和compute子句。
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的不同之处。
B、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有的,孙权周瑜已被去除。
C、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
返回的结果如下:
留意到只取两张表都有的记录(周瑜,孙权),这就是所谓的交集。
D、结果集的排序
SELECT Name FROM Person_1
INTERSECT
SELECT Name FROM Person_2
ORDER BY Name DESC --此处的字段名相同了,如果不同,请切记排序列名,只能够是第一个表的列名
这里只有两点要注意
1.ORDER BY是对整个运算后的结果排序,并不是对单个数据集。
2.ORDER BY后面排序的字段名称是第一个数据集的字段名或者别名。
SQL 操作结果集 -并集、差集、交集、结果集排序的更多相关文章
- SQL Server操作结果集-并集 差集 交集 结果集排序
操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物. 表:Person_1魏国人物 表:Person_2蜀国人物 A.Union形成并集 Union可以对两个或 ...
- Set 的合集 并集 差集
合集 ,,,,,,]; ,,]; function union() { //先将数组去重 let s1 = new Set(arr1); let s2 = new Set(arr2); //[...s ...
- 012_py之证书过期监测及域名使用的py列表的并集差集交集
一.由于线上域名证书快要过期,需要进行监测,顾写了一个方法用于线上证书过期监测,如下: import ssl,socket,pprint def check_domain_sslexpired(dom ...
- PHP求并集,交集,差集
PHP求并集,交集,差集 一.总结 一句话总结:在php中如果我想要对两个数组进行如并集.交集和差集操作,我们可直接使用php自带的函数来操作如array_merge(),array_intersec ...
- [转]SQL 操作结果集 -并集、差集、交集、结果集排序
本文转自:http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html 操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试 ...
- 转:SQL 操作结果集 -并集、差集、交集、结果集排序
为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物. 表:Person_1魏国人物 表:Person_2蜀国人物 A.Union形成并集 Union可以对两个或多个结果集进 ...
- python 并集union, 交集intersection, 差集difference, 对称差集symmetric_difference
python的集合set和其他语言类似,是一个无序不重复元素集, 可用于消除重复元素. 支持union(联合), intersection(交), difference(差)和sysmmetric d ...
- JS 对象 数组求并集,交集和差集
一.JS数组求并集,交集和差集 需求场景 最近,自己项目中有一些数组操作,涉及到一些数学集的运算,趁着完成后总结一下. 简化问题之后,现有两数组a = [1, 2, 3],b = [2, 4, 5], ...
- (java/javascript) list 交集 并集 差集 去重复并集
java list 交集 并集 差集 去重复并集 package com; import java.util.ArrayList; import java.util.Iterator; import ...
随机推荐
- 深入浅出话VC++(3)——VC++实现绘图操作
VC++实现绘图操作,说白了也就是对API熟练操作了,下面介绍几种绘图 1. 绘制线条 具体实现代码如下: // 鼠标左键按下时的处理函数 void CDrawView::OnLButtonDown( ...
- Visual Studio 2013 新功能 Memory Dump 分析器
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. TechEd2013 发现新功能 12月5日和6日,在国家会议中心参加了微软的 TechEd2013 ...
- 如果下次做模板,我就使用Nvelocity
普通Replace模板做法 很多人在做邮件模板.短信模板的时候,都是使用特殊标识的字符串进行占位,然后在后台代码中进行Replace字符串,如果遇到表格形式的内容,则需要在后台进行遍历数据集合,进行字 ...
- jenkins2 插件安装
文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd Jenkins的安装包和插件在7个国家有20多个镜 ...
- [ThingWorx] Install PostgreSQL Issue
ThingWorx application need PostgreSQL, I try configurate it in macbook. The first step is install Po ...
- 狗日的js的闭包
一.变量的作用域 要懂得闭包,起首必须懂得Javascript特别的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript说话的特别之处,就在于函数内部可以直接读取全局变量 ...
- 简单理解ECMAScript2015中的Promise
ECMAScript6中新增了Promise对象, 所谓Promise对象,即代表着一个还未完成,但将来某时会完成的操作(通常是异步操作).使用Promise对象,我们就可以避免陷入函数层层嵌套的‘回 ...
- inventor应用程序错误---解决方法
---恢复内容开始--- 点击 出现类似 我使用了网上的几个方法,最后是下载了2014--SP1补丁安装后就能正常打开程序了 http://pan.baidu.com/s/1pLQxp2b 这是地址3 ...
- 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(二)
----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<In-Memory OLTP – Comm ...
- android: 文件存储
数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑 关机的情况下,这些数据仍然不会丢失.保存在内存中的数据是处于瞬时状态的,而保存在 存储设备中的数据是处于持久状态的,持久化 ...