【问题标题】:Row_number() over partition分区上的 Row_number()
【发布时间】:2017-03-16 04:50:08
【问题描述】:

我正在研究 peoplesoft。我有一个要求,我必须按照基于某个 ID 排序的顺序更新列值。 例如。

CA24100001648- 1
CA24100001648- 2
CA24100001664- 1
CA24100001664- 2
CA24100001664- 3
CA24100001664- 4
CA24100001664- 5
CA24100001664- 6

但是,我得到 '1' 作为更新时所有行的值。

这是我的问题,谁能帮忙解决一下。

UPDATE PS_UC_CA_CONT_STG C 
SET C.CONTRACT_LINE_NUM2 = ( SELECT row_number() over(PARTITION BY D.CONTRACT_NUM
                                                      order by  D.CONTRACT_NUM)
FROM PS_UC_CA_HDR_STG D 
WHERE C.CONTRACT_NUM=D.CONTRACT_NUM );

谢谢enter image description here

【问题讨论】:

    标签: row-number


    【解决方案1】:

    更新雇员 设置通讯 = (与 cnt 作为(选择 deptno,empno,row_number() over (partition by deptno order by deptno) rn from emp) select c.rn from cnt c where c.empno=a.empno)

    【讨论】:

    • 我已经尝试使用 emp 表并且它正在工作,只是它应该在主键上加入。
    猜你喜欢
    • 2013-10-02
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多