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 */

 

posted @ 2019-08-13 15:34  篮球是圆的  阅读(5121)  评论(0编辑  收藏  举报