oracle查询取第二名的值。

查询语句如下:

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

查询结果为:

oracle 查询取第二行值 rank 与 ROWNUMoracle 查询取第二行值 rank 与 ROWNUM

 使用 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 ;

查询结果如下:

oracle 查询取第二行值 rank 与 ROWNUMoracle 查询取第二行值 rank 与 ROWNUM


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

oracle 查询取第二行值 rank 与 ROWNUM


 所以使用 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 与 ROWNUMoracle 查询取第二行值 rank 与 ROWNUM




相关文章:

  • 2022-12-23
  • 2022-01-07
  • 2022-12-23
  • 2021-04-11
  • 2022-02-10
  • 2022-01-19
  • 2021-10-06
猜你喜欢
  • 2022-01-04
  • 2021-10-27
  • 2021-07-20
  • 2021-04-10
相关资源
相似解决方案