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

 

转载于:https://www.cnblogs.com/heyt/p/11346239.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值