博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 表复杂查询之多表合并查询
阅读量:6193 次
发布时间:2019-06-21

本文共 1068 字,大约阅读时间需要 3 分钟。

转自:https://www.cnblogs.com/GreenLeaves/p/6635887.html

本文使用到的是oracle数据库scott方案所带的表,scott是oracle数据库自带的方案,使用前请确保其解锁

 

Oracle合并查询一共有四种方式,分别使用不同的关键字:UNION、UNION ALL、MINUS、INTERSECT

1、UNION ALL

 

使用UNION ALL,表示取A、B的合集,不过滤重复的数据行,代码如下:

select * from emp where sal>2500

左图表示结果集A

select * from emp where JOB='MANAGER'

左图表示结果集B

现在分析结果集A和结果集B,发现

红框中的数据重复了,接着我们在使用UNION ALL关键字

select * from emp where sal>2500UNION ALLselect * from emp where JOB='MANAGER'

UNION ALL   重复数据并没有被排除掉

 

2、UNION

使用UNION,会将结果集A和结果集B进行UNION ALL运算,然后取两者交集的余集作为结果集

代码如下:

select * from emp where sal>2500UNIONselect * from emp where JOB='MANAGER'

原先使用UNION ALL中重复的记录行被排除掉了

 

3、Intersect

 

 使用Intersect,会将结果集A和结果集B进行UNION ALL运算,然后两者之间的集交集作为结果集和UNION刚好相反

 

select * from emp where sal>2500INTERSECTselect * from emp where JOB='MANAGER'

将两个结果集的交集检索出来了

 

4、MINUS

 

 使用MINUS,取结果集A减去结果集B留下的差集,注:如果结果集A小于等于结果集B,返回空结果集.

select * from emp where sal>2500

左图表示结果集A

select * from emp where JOB='MANAGER'

左图表示结果集B

select * from emp where sal>2500MINUSselect * from emp where JOB='MANAGER'

 

转载于:https://www.cnblogs.com/sharpest/p/10508336.html

你可能感兴趣的文章
军武科技获5000万元B轮融资 男性用户占比达到90%以上
查看>>
一位6年老Android面经总结
查看>>
TableStore多元索路由探微
查看>>
Hanlp分词之CRF中文词法分析详解
查看>>
戴姆勒与宝马抱团开发自动驾驶 新旧车企大战在即
查看>>
MIPS R6架构现已可供开放使用
查看>>
MyExcel 2.1.3 发布,提供行级读取处理能力
查看>>
算法与数据结构(七) 图论
查看>>
【趣解编程】条件语句if
查看>>
95后博士入职达摩院,14岁上大学,成阿里史上最年轻科学家
查看>>
JPress v2.0-rc.4 发布,修复插件安装卸载的若干问题
查看>>
区块链技术开发 谈谈区块链应用的几大优势
查看>>
C# 设置Excel打印选项及打印excel文档
查看>>
systemd-journald日志持久化的操作方法
查看>>
Linux设备模型 (1)
查看>>
webshell木马简介及防护
查看>>
HP服务器RAID配置 两种方法
查看>>
window设置定时任务执行python脚本
查看>>
4.1-4.4 python的数据类型
查看>>
数据库副本的自动种子设定(自增长)
查看>>