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

时间:2012-05-10 18:55:34

标签: sql oracle

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

这是怎么做到的?

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

我需要31岁。

我一直在尝试rownum,但它似乎不起作用。

2 个答案:

答案 0 :(得分: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都归还。

答案 1 :(得分: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