Oracle数据库查询两个表中差异值
1、首先我们确认在B表中是存在(T00008)这样一个数据记录的。
SELECT * FROM G_SN_STATUS B WHERE SERIAL_NUMBER='T0008'

2、再次我们查询A表中,发现不存在(T00008T)这个值得记录。
SELECT * FROM G_SN_KEYPARTS A WHERE ITEM_PART_SN='T0008'

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


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

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

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

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