oracle两表数据对比minus

上传人:平*** 文档编号:13360303 上传时间:2017-10-23 格式:DOCX 页数:3 大小:17.33KB
返回 下载 相关 举报
oracle两表数据对比minus_第1页
第1页 / 共3页
oracle两表数据对比minus_第2页
第2页 / 共3页
oracle两表数据对比minus_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《oracle两表数据对比minus》由会员分享,可在线阅读,更多相关《oracle两表数据对比minus(3页珍藏版)》请在金锄头文库上搜索。

1、oracle 两表数据对比-minus1 引言在程序设计的过程中,往往会遇到两个记录集的比较。如华东电网 PMS 接口中实现传递一天中变更(新增、修改、删除)的数据。实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较等等。本文主要讨论利用 ORACLE 的 MINUS 函数,直接实现两个记录集的比较。2 实现步骤假设两个记录集分别以表的方式存在,原始表为 A,产生的比较表为 B。2.1 判断原始表和比较表的增量差异利用 MINUS 函数,判断原始表与比较表的增量差异。此增量数据包含两部分:1)原始表 A 有、比较表 B 没有;2)原始表 A 和比较表 B 都有,但是某些字

2、段发生了改变。2.2 判断比较表与原始表的增量差异利用 MINUS 函数,判断比较表与原始表的增量差异。此增量数据包含两部分:1)比较表 B 有、原始表 A 没有;2)比较表 B 和原始表 A 都有,但是某些字段发生了改变。2.3 得出结果集利用 SQL 语句中的对两种增量差异的处理,实现判别出比较表相对于原始表是进行了“插入”、“修改”、“删除”的情况。3 实例演练3.1 创建表并插入数据Create table A(A1 number(12),A2 varchar2(50);Create table B(B1 number(12),B2 varchar2(50);Insert Into A

3、 Values (1,a);Insert Into A Values (2,ba);Insert Into A Values (3,ca);Insert Into A Values (4,da);Insert Into B Values (1,a);Insert Into B Values (2,bba);Insert Into B Values (3,ca);Insert Into B Values (5,dda);Insert Into B Values (6,Eda);COMMIT;3.2 进行增量差异数据比较3.2.1 原始表 A 与比较表 B 的增量差异Select * from A

4、 minus select * from B;结果如下:A1 A2-2 ba4 da3.2.2 比较表 B 与原始表 A 的增量差异Select * from B minus select * from A;结果如下:B1 B2-2 bba5 dda6 Eda3.2.3 两种增量差异的合集此合集包含 3 类数据:-1、原始表 A 存在、比较表 B 不存在,属于删除类数据,出现次数 1-2、原始表 A 不存在、比较表 B 存在,属于新增类数据,出现次数 1-3、原始表 A 和比较表 B 都存在,属于修改类数据,出现次数 2Select A1,A2,1 t from (Select * from

5、A minus select * from B) unionSelect B1,B2,2 t from (Select * from B minus select * from A);结果如下:A1 A2 T- - -2 ba 12 bba 24 da 15 dda 26 Eda 23.3 得到结果Select A1,sum(t) from(Select A1,A2,1 t from (Select * from A minus select * from B) unionSelect B1,B2,2 t from (Select * from B minus select * from A)Group by A1;结果如下:A1 SUM(T)-6 22 34 15 2结果中 SUM(T)为 1 的为“删除”的数据,SUM(T)为 2 的为“新增”的数据,SUM(T)为 3 的为“修改”的数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号