ORACLE 怎么跟据头给行添加序号

本文介绍了如何在Oracle SQL中利用row_number()窗口函数,针对具有相同ID的记录进行分区并按特定字段排序,为每一行添加唯一的序列号。通过示例创建表t_row_str,插入数据,并展示查询结果,演示了如何实现这一功能。
摘要由CSDN通过智能技术生成

oracle为相同行记录增加序号列(row_number()函数)
表结构及测试数据如下:

CREATE TABLE t_row_str(  
ID INT,  
col VARCHAR2(10));  
INSERT INTO t_row_str VALUES(1,'a');  
INSERT INTO t_row_str VALUES(1,'b');  
INSERT INTO t_row_str VALUES(1,'c');  
INSERT INTO t_row_str VALUES(2,'a');  
INSERT INTO t_row_str VALUES(2,'d');  
INSERT INTO t_row_str VALUES(2,'e');  
INSERT INTO t_row_str VALUES(3,'c');  
COMMIT; 

查询插入的数据:

SELECT * FROM t_row_str;  
ID COL  
-- ----------  
 1 a  
 1 b  
 1 c  
 2 a  
 2 d  
 2 e  
 3 c

执行如下SQL语句获得想要的结果:

SELECT id, col, row_number() over(PARTITION BY id ORDER BY col) AS rn  
  FROM t_row_str  
ID COL                RN  
-- ---------- ----------  
 1 a                   1  
 1 b                   2  
 1 c                   3  
 2 a                   1  
 2 d                   2  
 2 e                   3  
 3 c                   1  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焚目圣僧渡众生

你的 一角将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值