【PostgreSQL 17】9 集合运算符
一、并集 UNION
UNION ALL 不会去重,效率更高
SELECT
emp_id
FROM
excellent_emp
WHERE
year = 2018
UNION
SELECT
emp_id
FROM
excellent_emp
WHERE
year = 2019
;

SELECT
emp_id
FROM
excellent_emp
WHERE
year = 2018
UNION ALL
SELECT
emp_id
FROM
excellent_emp
WHERE
year = 2019
;

二、交集 INTERSECT
SELECT
*
FROM
(VALUES(1),(1),(2)) t1(n)
INTERSECT
SELECT
*
FROM
(VALUES(1),(1),(3)) t2(n)
;

SELECT
*
FROM
(VALUES(1),(1),(2)) t1(n)
INTERSECT ALL
SELECT
*
FROM
(VALUES(1),(1),(3)) t2(n)
;

三、差集 EXCEPT
SELECT *
FROM (values(1), (1), (2)) t1(n)
EXCEPT
SELECT *
FROM (values(1), (3)) t2(n)
;

SELECT *
FROM (values(1), (1), (2)) t1(n)
EXCEPT ALL
SELECT *
FROM (values(1), (3)) t2(n)
;

四、优先级
INTERSECT 优先级高于 UNION 和 EXCEPT
相同的优先级按先后
可以用括号改变优先级
SELECT *
FROM (values(1)) t1(n)
UNION ALL
SELECT *
FROM (values(1)) t2(n)
INTERSECT
SELECT *
FROM (values(1)) t3(n)
;

(
SELECT *
FROM (values(1)) t1(n)
UNION ALL
SELECT *
FROM (values(1)) t2(n)
)
INTERSECT
SELECT *
FROM (values(1)) t3(n)
;

参考资料
[1] 不剪发的Tony老师【PostgreSQL开发指南】第27~30节
【PostgreSQL 17】9 集合运算符的更多相关文章
- 小谈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 * ...
- SqlServer 集合运算符
1.集合运算符概述 (1)集合运算符运用与集合之间的运算. (2)多元集合: 指的是来自两个输入查询的集合,可能包含重复项 (3)T-SQL 支持三种集合运算符 union .intersect .e ...
- T-SQL:探究UNOIN,INTERSECT,EXCEPT集合运算符(十一)
1.UNOIN运算符 unoin合并了两个输入查询结果 并消除重复项 简单点说 就是输出并集 SELECT country, region, city FROM HR.Employees UNI ...
- oracle开发学习篇之集合运算符以及集合异常捕获
--取出集合;长度 declare type list_nested ) not null; v_all list_nested := list_nested('a','b','c','d','c', ...
随机推荐
- 关于Design Review 的一些思考
开发流程 这篇文章记录一些我对Design Review 的一些思考,下面是我当下对开发流程的理解: 开发流程: 收到需求 需求分析 设计分析 项目排期 项目开发 测试环境测试 线上回归测试 上线观察 ...
- 香港CN2优化线路带宽低延迟VPS服务器推荐
原文:https://ichochy.com/posts/20231120.html CN2 CN2,中国电信下一代承载网(ChinaNetNextCarryingNetwork).CN2是一个多业务 ...
- ET6.0运行Demo和工具使用
环境:Mac + Rider + ET6.0 一:运行Demo 1:下载ET6.0,get:https://github.com/egametang/ET 2:下载.net core 5.0.ET6. ...
- 插件报错:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.解决方案
今天在用Maven搞一个工程,安装要求我添加了所有需要的依赖,可是一运行测试程序,就跳出这样一个大大的错误: SLF4J: Failed to load class "org.slf4j.i ...
- 基于 swoole 下 异步队列和毫秒定时任务 API
说明 1.在 Server 程序中如果需要执行很耗时的操作,比如一个聊天服务器发送广播,Web 服务器中发送邮件.如果直接去执行这些函数就会阻塞当前进程,导致服务器响应变慢. Swoole 提供了异步 ...
- Django+DRF 实战:从异常捕获到自定义错误信息
一.DRF 异常 介绍 APIException 类是 DRF 异常的基类.通过继承APIException,DRF 提供了多种内置异常类. ParseError:当请求解析失败时抛出. Authen ...
- Linux安装以及JDK,Tomcat,mysql环境的搭建
Linux操作系统以及JDK,tomcat,mysql环境的安装 linux特点 linux是一种开源的免费的操作系统 linux比windows 注重安全性.权限管理.稳定性.高并发处理的能力 li ...
- JavaScript中如何遍历对象?
JavaScript中如何遍历对象? 今天来点稍微轻松的话题,如何在JavaScript中遍历对象,在平常的工作中,遍历对象是很常见的操作,javascript提供了多种方法来遍历对象的属性.这些方法 ...
- Jquery获取div的宽度与高度
https://blog.csdn.net/qq2468103252/article/details/82835563 宽度$('div').width(); 区块的本身宽度$('div').oute ...
- vue3使用composables来取代mixins 来状态复用
前言 最简单理解composables的方式 就是将其视为vue版的自定义hooks 来个demo 比如 页面初始化的时候 我需要请求接口 获取数据 并回填至表单 以前的做法 src/pages/in ...