SqlServer 集合运算符
1、集合运算符概述
(1)集合运算符运用与集合之间的运算、
(2)多元集合: 指的是来自两个输入查询的集合,可能包含重复项
(3)T-SQL 支持三种集合运算符 union 、intersect 、except
2、集合运算符的一般形式和要求
(1)一般形式
input query1
<set_operater>
input query2
order by ...
(2)要求
①安装集合运算符定义,集合运算符应用于两个集合,集合是无序的,因此所涉及的两个query 都不能有order by子句 ,但是可以在运算符结果中使用order by 进行排序
②集合运算符所涉及的两个查询应当具有相同的列数,并且数据类型兼容
③集合运算符结果由第一个query确定,因此如果需要分配别名,应该在第一个查询中分配
④集合运算符比较行时,认为两个NULL 是相等的
⑤标准的SQL对运算符支持 两种行为 , DISTINCT 和 ALL , distinct 消除重复行、all 不会消除重复行,直接返回多元集合,sql server 三种集合运算符默认都是distinct , 且只有UNION支持 all ,需显式指定
3、UNION 运算符
常用,略
4、INTERSECT
(1)intersect 用于取集合A和B 的交集
(2)只要某行返回了,他在多个多元集合中都至少出现一次
(3)返回的结果默认是distinct ,消除重复行的,且认为NULL和NULL是相等的
(4) 标准SQL 实际支持 intersect all 的行为,但是在sql server 2012 中尚未实现
5、EXCEPT运算符
(1)用于计算A和B 的差异(A-B)
(2)返回的行,至少在A中出现1次、在B中出现0次
6、集合运算符的优先级
intersect > union = except
7、规避不支持的逻辑运算
集合元素符的结果,只能使用order by 逻辑阶段,如果需要对运算符结果应用除了order by 之外的其他逻辑阶段,就需要使用表表达式,如派生表
select country ,count(*) as numlocations
from
(
select country, region, city from HR.Employees
UNION
select country, region, city from Sales.Customers
) as U
group by U.country
有时确实需要在在集合运算涉及的两个query中使用orderby ,比如两个query都要限制行数、分页等 ,也可以使用类似的方案解决
SELECT empid, orderid, orderdate
FROM (SELECT empid, orderid, orderdate
FROM Sales.Orders
WHERE empid = 3
ORDER BY orderdate DESC, orderid DESC
OFFSET 0 ROWS FETCH FIRST 2 ROWS ONLY) AS D1 UNION ALL SELECT empid, orderid, orderdate
FROM (SELECT empid, orderid, orderdate
FROM Sales.Orders
WHERE empid = 5
ORDER BY orderdate DESC, orderid DESC
OFFSET 0 ROWS FETCH FIRST 2 ROWS ONLY) AS D2;
SqlServer 集合运算符的更多相关文章
- 小谈KVC中KeyPath的集合运算符
由于知识点比较简单,这里不再陈述一大堆的原理,直入主题. KVC中的集合运算符有以下三类: 1.简单集合运算符:@avg.@sum.@max.@min.@count (只能用在集合对象中,对象属性必须 ...
- Oracle集合运算符 交集 并集 差集
集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集 一.union求并集,公共部分只有包含一次 例:求emp表ename中含’A‘或含有‘M’ SQL&g ...
- SQL的集合运算符介绍
最近学习了SQL SERVER方面的知识,毕竟做Web应用,少不了跟数据库打交道.学习的来源主要是<程序员的SQL金典>这本书. 今天介绍数据库里面的集合运算符,它是指匹配集合的每一个结果 ...
- oracle 集合运算符
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAACNCAIAAAAvhQoxAAAbmklEQVR4nO1dX6jc1pn/0lBH4KVV6J ...
- 集合运算符之全集、交集、补集【weber出品必属精品】
集合的概念 与数学中的全集.交集.补集的概念是一样的 常用的集合运算符 集合运算符的作用:把两个查询构造为一个联合查询 1. 全集:求连个查询的全集 union all:将两个查询的所有数据全部列出, ...
- LINQ之路16:LINQ Operators之集合运算符、Zip操作符、转换方法、生成器方法
本篇将是关于LINQ Operators的最后一篇,包括:集合运算符(Set Operators).Zip操作符.转换方法(Conversion Methods).生成器方法(Generation M ...
- Oracle的集合运算符
Oracle的集合运算符有并集union.union all,交集intersect,差集minus 先建表myemp,进行集合运算的测试 create table myemp as select * ...
- T-SQL:探究UNOIN,INTERSECT,EXCEPT集合运算符(十一)
1.UNOIN运算符 unoin合并了两个输入查询结果 并消除重复项 简单点说 就是输出并集 SELECT country, region, city FROM HR.Employees UNI ...
- sqlserver集合操作
SQLServer2005通过intersect,union,except和三个关键字对应交.并.差三种集合运算 详细如下 use tempdb go if (object_id ('t1' ) is ...
随机推荐
- 【深入】 - AST抽象语法树
参考: https://segmentfault.com/a/1190000016231512
- 导弹拦截p1020(LIS问题)
题目描述(题目链接:https://www.luogu.org/problem/P1020) 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够 ...
- Day3-K-Can you solve this equation? HDU2199
Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and ...
- 2017北京网络赛 F Secret Poems 蛇形回路输出
#1632 : Secret Poems 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The Yongzheng Emperor (13 December 1678 – ...
- CodeForces - 869A The Artful Expedient
题意:有两个序列X和Y,各含n个数,这2n个数互不相同,若满足xi^yj的结果在序列X内或序列Y内的(xi,yj)对数为偶数,则输出"Karen",否则输出"Koyomi ...
- Selenium -- ActionChains().move_by_offset() 卡顿的解决方法
测试运行时间 运行时间 发现每次0.5秒,此时需要修改默认的时间 打开Python安装目录下的Lib\site-packages\selenium\webdriver\common\actions\p ...
- 挖矿程序minerd入侵分析和解决办法
现在比特币的价格涨得很高,所以现在有黑客专门制造挖矿木马来诱导网友,从而达到控制电脑上的显卡来挖掘比特币.为什么木马要控制电脑中的显卡呢?因为显卡挖掘虚拟货币比特币的效率远比 CPU 要高.如果你是一 ...
- 简述DDD,战略设计
从What.How.Why三个层面进行了梳理. What:DDD是什么?DDD是用来解决软件复杂度的问题,是一种软件思想. Why:为什么DDD可以解决软件复杂度?对于规模造成的复杂度,可以借助限界上 ...
- NO13 Linux的基础优化-关闭SELinux功能-Linux的7种运行级别-防火墙设置-中文显示设置
壹 安装Linux系统后调优及安全设置: 1 关闭SELinux功能: [root@localhost data]# sed 's#SELINUX=enforcing#SELINUX=disable ...
- swarm docker-compose.yml NFS 搭建LNMP
列表: 172.16.0.40 (swarm-master) 172.16.0.160 (swarm-worker) 172.16.0.170 (swarm-worker) 1 ...