Oracle数据库查询两个表中差异值

2025-11-08 14:14:41

1、首先我们确认在B表中是存在(T00008)这样一个数据记录的。

SELECT * FROM G_SN_STATUS B WHERE SERIAL_NUMBER='T0008'

Oracle数据库查询两个表中差异值

2、再次我们查询A表中,发现不存在(T00008T)这个值得记录。

SELECT * FROM G_SN_KEYPARTS A WHERE ITEM_PART_SN='T0008'

Oracle数据库查询两个表中差异值

3、T0008在A表中对应的字段是:ITEM_PART_SN 在B表中对应的字段是SERIAL_NUMBER .

Oracle数据库查询两个表中差异值

Oracle数据库查询两个表中差异值

4、这时我们利用ORACLE 数据库的 <MINUS>来实现两个表相同字段的差异部分----即在表B中存在而不存在于表A。

SELECT B.SERIAL_NUMBER FROM G_SN_STATUS B 

MINUS

SELECT A.SERIAL_NUMBER FROM G_SN_KEYPARTS A

Oracle数据库查询两个表中差异值

5、上例中由于是测试数据库,资料量比较少,才查出63笔资料,如果是大数据的时候,我们往往需要加上一些条件,这样会更快速(稍加条件后,资料变少了)。

SELECT B.SERIAL_NUMBER FROM G_SN_STATUS B WHERE IN_PROCESS_TIME>to_date('2016-03-01 00:00:00','yyyy-mm-dd HH24:mi:ss')

MINUS

SELECT A.SERIAL_NUMBER FROM G_SN_KEYPARTS A

Oracle数据库查询两个表中差异值

6、以上只是示范 MINUS的用法,若数据量大,请自行加上筛选条件,避免查询数据量过大,造成不必要的损失。

Oracle数据库查询两个表中差异值

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢