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 ;
查询结果为:
使用 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 ;
查询结果如下:
rank的缺点在于,当两条数据并列第一名是,第二名取值则为null。展示如下:
所以使用 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 ) ;
oracle 查询取第二行值 rank 与 ROWNUM相关教程