Oracle - 从表中选择n-1条记录

问题描述 投票:2回答:2

我有一个数据表,想要检索倒数第二个记录。

这是怎么做到的?

TABLE:        results
              -------
              30
              31
              35

我需要31。

我一直在尝试使用rownum,但似乎没有用。

sql oracle
2个回答
4
投票

假设你想要第二高的数字并且没有联系

SELECT results
  FROM (SELECT results,
               rank() over (order by results desc) rnk
          FROM your_table_name)
 WHERE rnk = 2

根据您想要处理关系的方式,您可能需要rankdense_rankrow_number分析函数。如果有两个35的例子,你想要35回来吗?还是31?如果有两个31,你想要返回一行吗?或者你想要两个31都返回。


0
投票

这可以用于第n级##

select Total_amount from (select Total_amount, rank() over (order by Total_amount desc) Rank from tbl_booking)tbl_booking where Rank=3

© www.soinside.com 2019 - 2024. All rights reserved.