Row_number()超过分区

时间:2017-03-16 04:50:08

标签: row-number

我正在为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

1 个答案:

答案 0 :(得分:-1)

更新emp a 设置comm = (用cnt作为(选择deptno,empno,row_number()over(由deptno命令deptno分区)来自emp) 从cnt c中选择c.rn,其中c.empno = a.empno)