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