[转]SQL 操作结果集 -并集、差集、交集、结果集排序
本文转自:http://www.cnblogs.com/kissdodog/archive/2013/06/24/3152743.html
操作结果集
为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。
表: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 操作结果集 -并集、差集、交集、结果集排序
操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物. 表:Person_1魏国人物 表:Person_2蜀国人物 A.Union形成并集 Union可以对两个或 ...
- 转: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 ...
随机推荐
- 发测试 HTML/FILE/MYSQL/动态 20151120
NilCMS几种页面输出方式: 1.直接生成html.不进行php处理. 2.生成文件缓存.针对于URL中单个目录文件过多,不利于管理.只进行PHP处理,不连接mysql. 3.生成mysql缓存.数 ...
- iOS 判断数组是否为空
有人说可以用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出. 正确判断NSArray是否为空的方法:用 (!array) ...
- SharePoint 2013 VSS 编写器
Windows Server 包含的 VSS 是提供内置卷影复制功能的基础结构.VSS 创建的卷影副本扩展了存储管理员的磁带备份存档解决方案,提供可轻松.有效创建和还原的高保真时间点副本,从而帮助简化 ...
- 解决在使用client object model的时候报“object does not belong to a list”错误
在查看别人代码的时候,发现了个有意思的问题,使用client object model将一个文件check in 我使用的是如下语句获取file Microsoft.SharePoint.Client ...
- 为Autodesk Viewer添加自定义工具条
如果你参加过我们近期的活动,你就会频繁的听到我们现在正在做的Autodesk Viewer大模型浏览器,这是一个不需要下载任何插件,基于WebGL技术的浏览器,可以支持几十种数据格式.同时viewer ...
- Android-SQLite版本问题
1. 用户 重来没有使用过该软件 不存在数据库,我们 1). 自动调用 void onCreate(SQLiteDatabase db) 方法 创建数据库 2).创建 表 , 3).给表插入初始化数据 ...
- AES加密解密
AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种密钥方案,用以适应 ...
- 软件开发与UML的关系
今天,我们上<统一建模语言UML>.课上老师给我们讲解了软件开发与UML之间的关系:UML常用于建立软件系统的模型,适用于系统开发的不同阶段.UML的应用贯穿于系统开发的不同阶段.1.需求 ...
- C#中的Lambda表达式和表达式树
在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在 ...
- linux 学习随笔-文件目录管理
1:绝对路径:写法一般由'/'根目录引起的 '/'表示根目录 2:相对路径:不是由'/'引起的 需要先进入/ 在进入其它文件 3:mkdir -p +目录+文件夹 可以用于创建不存在的级联目录 不 ...