oracle中row_number()的用法


 

 

公司系統升級的時候需要數據遷移,遇到一個問題:新表的數據結構和舊表異構,舊表是流水號,新表是聯合主鍵(業務號碼+業務號碼序號)

最后發現用窗口函數 row_number() + partition by 就可以完美的實現,這里記錄下,本人膽子比較小以至於例子中的表名和字段名都是瞎寫的,嘻嘻,以后再遇到類似問題就直接抄了,哈哈。(partition by和group by都是分

組,但是感覺前者要比后者作用更靈活)

 

 1 SELECT column1,
 2 column2,
 3 row_number() over(partition by column2 order by column2 desc) column2_seq
 4 FROM talbe_name a
 5 WHERE column1 in ('222222222222222C', '000000000000000C');
 6 
 7 --效果不錯噢 
 8 /* 
 9 000000000000000C    100000002527    1
10 000000000000000C    100000002526    2
11 
12 222222222222222C    100002456768    1
13 222222222222222C    100002456767    2
14 222222222222222C    100002456766    3
15 222222222222222C    100002456765    4
16 222222222222222C    100002456764    5
17 222222222222222C    100002456762    6
18 222222222222222C    100002456761    7
19 222222222222222C    100002390482    8
20 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM