Oracle - UNION/UNION ALL 并集、INTERSECT 交集、MINUS 差集

测试表:RY

SELECT COUNT(*) FROM ry

 

UNION/UNION ALL 并集

SELECT mc FROM ry
UNION 
SELECT mc FROM ry

上面执行结果,数据条数是:80 条,原因:UNION 会过滤掉重复数据!

SELECT mc, COUNT(1) counts FROM ry GROUP BY mc HAVING COUNT(1) > 1

再对比下 UNION ALL,UNION ALL 不会过滤重复数据

SELECT r.mc FROM ry r
UNION ALL
SELECT r.mc FROM ry r

执行后数据条数是:162 条,说明没有将重复记录过滤掉。

 

SELECT rowid, r.mc FROM ry r WHERE rownum <= 10

SELECT rowid, r.mc FROM ry r WHERE rownum <= 5

 

INTERSECT 交集

SELECT rowid, r.mc FROM ry r WHERE rownum <= 10
INTERSECT  
SELECT rowid, r.mc FROM ry r WHERE rownum <= 5

 

MINUS 差集

SELECT rowid, r.mc FROM ry r WHERE rownum<= 10
MINUS  
SELECT rowid, r.mc FROM ry r WHERE rownum <= 5

SELECT * FROM A MINUS SELECT * FROM B
    A表中有,B表中没有
SELECT * FROM B MINUS SELECT * FROM A
    B表中有,A表中没有

 

转载于:https://www.cnblogs.com/ikoo4396/p/7461945.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值