MINUS函数和OVER函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用ORACLE的MINUS函数和OVER函数

直接通过视图实现两个记录集的比较

1 前言

-------------------------------------------------------------

在程序设计过程中,往往遇到比较两个记录集的差异。如,判断原来传入的订单资料与后来传入的订单资料之间的差异,并且将差异的数据显示给用户。

实现的方式有多种,如编程存储过程返回游标,在存储过程中对两批数据进行比较...等等,当然返回差异数据的方式多种多样,既可以是游标,又可以临时表或其它方式。

本文主要论述利用ORACLE的MINUS函数和OVER函数,直接通过视图实现两个记录集的比较。

-------------------------------------------------------------

2 实现步骤

-------------------------------------------------------------

2.1 利用MINUS函数,判断原始表与比较表的增量差异

<设:两个记录集分别以表的方式存在,为表A和表B。其中,A表为原始表,B 表为后来产生的比较表,即要与A表进行比较的数据表>

增量差异指,A中存在的记录,哪些在B表中没有的,也就是说,A表的记录被修改或删除

2.2 利用MINUS函数,判断比较表与原始表的增量差异

即B表中存在的记录,哪些在A表中没有,也就是说,B表新增的或A表修改的记录

2.3 连接A-B的增量差异表和B-A的增量差异表,利用OVER函数判断数据重复的次数

如果数据重复次数为2,则该记录的标识为“修改”;

如果数据重复次数为1,且出现在A-B的增量差异表中,则该记录的标识为“删除”;

如果数据重复次数为1,且出现在B-A的增量差异表中,则该记录的标识为“新增”

-------------------------------------------------------------

3 实例演练

-------------------------------------------------------------

--3.1 创建数据表和实例环境

<设原始记录集为数据表A,比较记录集为数据表B,当然实际应用过程中,参与比较的通常是视图,不会是数据表>

--3.3 比较结果集

相关文档
最新文档