ORACLE数据库 —— 集合运算

6 篇文章 0 订阅
1 篇文章 0 订阅

1.定义:在多个查询结果之间的查询操作

2.并集:将两个查询的查询结果合并在一起

A UNION B ==>ACB

A UNION ALL B ==> ACCB

(1)union:去重,结果以第一列升序排列

SELECT deptno,DNAME FROM DEPT
UNION
SELECT DEPTNO,ENAME FROM EMP;

 (2)union all:不去重,不排序

SELECT DEPTNO,DNAME FROM DEPT
UNION ALL
SELECT DEPTNO,ENAME FROM EMP;

 注意:(1)集合操作时,必须要保证数据类型和个数保持一致

SELECT DNAME,DEPTNO FROM DEPT
UNION
SELECT DEPTNO,ENAME,SAL FROM EMP;

在第一个查询中有2个字段,数据类型分别为varchar2和number类型,而在第二个查询中有三个字段,数据类型分别为number,varchar2和number类型,所以最后的结果只会是报错。

 (2)最终的字段名以第一个查询查询结果为主。

3.交集:将两个查询的查询结果共有的数据取出,intersect

 A INTERSECT B ==>C

SELECT JOB FROM EMP WHERE DEPTNO=10
INTERSECT
SELECT JOB FROM EMP WHERE DEPTNO=20;

 4.差集:返回在第一个查询结果中出现而不在第二个查询查询结果中出现的数据

 

A MINUS B ==>A-C

SELECT JOB FROM EMP WHERE DEPTNO=10
MINUS
SELECT JOB FROM EMP WHERE DEPTNO=30

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我看你与我有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值