Oracle两张表数据比较的几种方式

Oracle两张表数据比较的几种方式两张表所选字段的内容进行比较 返回的差 表中数据量较大使用并行方式 parallel exists 比较难理解 看了很多解释 还是回归本源 作为使用者只要知道怎么用能够达到你的目的就够了

欢迎大家来到IT世界,在知识的湖畔探索吧!

Minus:返回的T1-T2是差集。

–两张表所选字段的内容进行比较,返回(表1-表2)的差,表中数据量较大使用并行方式/*+parallel(8)*/

select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from 表1 minus select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from 表2 

欢迎大家来到IT世界,在知识的湖畔探索吧!

上下表的顺序改变结果是不同的 ,返回(表2-表1)的差,

欢迎大家来到IT世界,在知识的湖畔探索吧!select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from 表2 minus select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from 表1 

intersect 获取两张表相同的部分

–两张表所选字段的交集,就是获取两张表相同的部分

select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from ydetl.表2 intersect select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from east.表1 

exists 存在于

exists比较难理解,看了很多解释,还是回归本源,作为使用者只要知道怎么用能够达到你的目的就够了。

1,两张表比较,必须带where条件进行两张表关联,不然结果不同。结果集是:LSH字段相同的情况下,表1 存在于表2 中的数据。

exists引导的子句有结果集返回true和false,select 1 这个1这个数字没有意义,是字段名也可以,是什么都可以,这个记住就行了。

欢迎大家来到IT世界,在知识的湖畔探索吧!select /*+parallel(8)*/ lsh, bxjgdm, bxjgmc, khbh from 表1 where exists(select 1 from 表2 where 表1.lsh=表2.lsh and ……)

not exists 不存在于

两张表比较,需带where条件。结果集是:lsh和khbh字段相同的情况下,表1 不存在于表2 中的数据。

select /*+parallel(8)*/ lsh, bxjgdm, bxjgmc, khbh from 表1 where not exists(select 1 from 表2 where 表1.lsh=表2.lsh and 表1.khbh=表2.khbh ……)

union all 两张表数据合集,字段数量要一致

union 两张表去重后的合集,字段数量要一致

总结:可以联合使用需要加()

欢迎大家来到IT世界,在知识的湖畔探索吧!(select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from ydetl.表2 intersect select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from east.表1 ) minus (select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from ydetl.表3 union select /*+parallel(8)*/ LSH, BXJGDM, BXJGMC, KHBH from east.表4)


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/87981.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信