SQL Server操作结果集-并集 差集 交集 结果集排序
操作结果集
为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。
表: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 Server操作结果集-并集 差集 交集 结果集排序的更多相关文章
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- sql server操作2:查询数据库语句大全【转】
注:以下操作均建立在上篇文章sql Server操作1的数据基础之上 一.实验目的 熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询 二.实验内容和要求 使用SQL查询分析器查询数据,练 ...
- sql server 操作xml例子
sql server 操作xml例子 /* sql xml 入门: --by jinjazz --http://blog.csdn.net/jinjazz 1.xml: 能认识元素.属性和值 2.xp ...
- (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
原文地址: http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...
- SQL Server 操作XML数据
.xml.exist 输入为XQuery表达式,返回0,1或是Null.0表示不存在,1表示存在,Null表示输入为空 .xml.value 输入为XQuery表达式,返回一个SQL Server标量 ...
- (转载) 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁 ...
- 使用SQL SERVER FOR XML PATH将多个结果集转换成一行并进行去重处理
在一个医药行业的系统中需要根据患者的接触记录ID获取不同接触类型的集合,效果像这样 --患者接触记录信息,一个患者可以有N个不同的接触记录,每个接触记录又有N个接触类型记录 IF OBJECT ...
- sql server 操作(不定期更新)
要求:基本的语法要清楚. sql server疑难点: 1.Partition by可以理解为 对多行数据分组后排序取每个产品的第一行数据 先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查 ...
- sql server操作远程数据库
--连接远程数据库 EXEC sp_addlinkedserver '服务器ip',N'SQL Server' --登录远程服务器 EXEC sp_addlinkedsrvlogin '服务器ip', ...
随机推荐
- 关于gridview改变行内容事件需要点击别的行或控件才能执行
一般的datagridview控件: this.dgvAssetList.CurrentCell = null;//取消datagridview行的编辑状态 Dev gridcontrol控件 Gr ...
- 浅谈.NET,C#三层架构(自己总结)
三层架构 常见架构: 三层(经典) MVC MVVM MVP 开发中常见的23种设计模式: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种: ...
- Javascript/jQuery常用方法
//字符串转成时间 function getDate(strDate) { var date = eval('new Date(' + strDate.replace(/\d+(?=-[^-]+$)/ ...
- 如何把OpenWrt安装到PC?
前言 什么是openwrt? 它是一个适用于路由器的Linux发行版.和其他Linux发行版一样,它也内置了包管理工具,你可以从一个软件仓库里直接安装软件.OpenWrt可以用在所有需要嵌入式Linu ...
- C++ const 和static的总结以及使用
一 static的使用 (作用域和存储方式) 1.作用域---------->隐藏 静态函数跟静态全局变量的作用类似 (静态函数不能被其它文件所用: 其它文件中可以定义相同名字的函数,不会发生 ...
- ESP8266 wifi干扰、钓鱼实现
说明:绝大部分都是对着下面的参考文章来做的.这里只把基本流程和我自己遇到的问题写一下.如有其他问题可以访问文章末的参考文章进行查找! esp8266模块 我们需要购买一块esp8266模块,如下图所示 ...
- Zookeeper原理分析之存储结构ZkDatabase
ZKDatabase在内存中维护了zookeeper的sessions, datatree和commit logs集合. 当zookeeper server启动的时候会将txnlogs和snapsho ...
- SpringBoot学习笔记(一)基础
Spring Boot理念 习惯优于配置.使用Spring Boot很容易创建一个独立运行(运行jar,内嵌servlet容器).准生产级别的基于Spring框架的项目,使用SpringBoot可以不 ...
- ActiveRecord::Fixture::FixtureError: table "users" has no column named "activated_at".
window 7+ruby2.33+rails5.0. 在测试的时候 rails test 报固件fixture错误: 没有某列字段存在 虽然可以直接通过开发框架去修改字段,但是开发过程中应该通过迁移 ...
- asp.net MVC 多系统目录结构
学习了几天的mvc5,发现vs把所有的控制器都放在同一个目录Controllers目录下,细想一下,假如一个项目包含几个系统: 行政办公系统.培训管理系统.督办管理系统.会议管理系统…… 如果还把控制 ...