假设有一张表oldyang_bayern,取其中的10条数据作为参考:
plsql1

现在需要合并此张表中姓名重复的数据,将符合条件的字段值,合并到重名数据中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条数据合并后的结果应如下所示:
plsql2

我所给出的方法:

处理合并的存储过程prc_oldyang_bayern

存储过程中所用到的自定义函数fun_get_ranknum

利用匿名块传递重复姓名到prc_oldyang_bayern,执行合并过程

Rand Posts:



我们在天上的父
愿人都尊你的名为圣
愿你的国降临
愿你的旨意行在地上如同行在天上
我们将顺着你的指引前行
直至重归你的梯下


5 条评论



  1. 传说中的沙发?

    [ 引用 ]


  2. :) 不管內容怎樣,至少看上去很專業……

    [ 引用 ]


  3. 小小5 在 2009年06月25日 05:28 说到:

    :) 不管內容怎樣,至少看上去很專業……

    正如海上生活。。。

    [ 引用 ]


  4. 好文,归档毕,很好很强大~

    [ 引用 ]


  5. ding\\\你个肺 牛叉!呵呵 好久没有来看过了,果然是付常检的嫡系弟的人无处容身,像我,就需要租间房子。这栋楼老太太有两层房,之前楼下住着她的儿子儿媳,不过,他们去南京工作了,楼

    [ 引用 ]

发表评论

文明上网,共建和谐社会。