2009年06月23日 使用PL/SQL合并重复的数据
假设有一张表oldyang_bayern,取其中的10条数据作为参考:

现在需要合并此张表中姓名重复的数据,将符合条件的字段值,合并到重名数据中ID最高的那一条。
要合并的字段分为三种情况:
1. 常规字段(DEPARTMENT/JOBTITLE):取重名数据中ID最高的非空值,例如“施魏因施泰格”的DEPARTMENT字段合并后,应取值“组织部”;
2. 依据数值大小取值的字段(SALARY):取重名数据中的最大值;
3. 非常规字段(CITY/DITRICT/ADDRESS/ADDRESSRANK):这些字段都与地址相关,以ADDRESSRANK最高的那条数据为准(ADDRESSRANK由高到低分别为S|A|B|C|D),然后取此条数据中的CITY/DITRICT/ADDRESS值;如果ADDRESSRANK相同,取ID最高的数据。
依据以上条件,此前的10条数据合并后的结果应如下所示:

我所给出的方法:
处理合并的存储过程prc_oldyang_bayern
存储过程中所用到的自定义函数fun_get_ranknum
利用匿名块传递重复姓名到prc_oldyang_bayern,执行合并过程
类归于: 技术 — 老杨 发表于 2009年06月23日@21:53  
传说中的沙发?
吉洪诺夫 —— 2009年06月23日@22:01
小小5 —— 2009年06月25日@05:28
正如海上生活。。。
老杨 —— 2009年06月25日@12:45
好文,归档毕,很好很强大~
超哥 —— 2009年06月27日@16:18
ding\\\你个肺 牛叉!呵呵 好久没有来看过了,果然是付常检的嫡系弟的人无处容身,像我,就需要租间房子。这栋楼老太太有两层房,之前楼下住着她的儿子儿媳,不过,他们去南京工作了,楼子
王标宇 —— 2009年08月09日@11:36