oracle查看数据在第几行,oracle 查询取第二行值 rank 与 ROWNUM

本文介绍了在Oracle数据库中如何查询排名第二的数据记录。通过对比rank()和ROWNUM两种方法,详细解析了各自的优缺点及适用场景。对于rank(),当出现并列第一时,第二名可能返回null;而ROWNUM则更适合于获取特定排名的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 查询取第二行值 rank 与 ROWNUM

oracle 查询取第二行值 rank 与 ROWNUM

oracle查询取第二名的值。

查询语句如下:

select ADD_SHI , sum(pro_zijin) as hzijin5 from ts_zijin where     PRO_YEAr = 2013 group by ADD_SHI  order by hzijin5  desc ;

查询结果为:

214174.html

8fb0458f31060ece4c2370bf262e8f91.png

使用 rank 查询的写法如下:

select *   from (  select a.*, rank() over(order by hzijin5 desc ) as lev

from (  select ADD_SHI , sum(pro_zijin) as hzijin5 from ts_zijin

where     PRO_YEAr = 2013 group by ADD_SHI  order by hzijin5

) a  )where lev = 2 ;

查询结果如下:

214174.html

6eb9374a5e04bb7a0dc0951866b8d311.png

rank的缺点在于,当两条数据并列第一名是,第二名取值则为null。展示如下:

8e5da869ab700acd6c0d8d1dcb26f5c6.png

所以使用 ROWNUM 比较好,写法如下:

SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (

select  sum(pro_zijin) as hzijin0 from ts_zijin where     PRO_YEAr = 2015 group by ADD_SHI  order by hzijin0 desc

) A )  ;

214174.html

304e1ebd3370b57ee43dc6a0ec5e2dd1.png

oracle 查询取第二行值 rank 与 ROWNUM相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值