2

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

这是怎么做到的?

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

我需要得到31。

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

4

2 回答 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 的返回。

于 2012-05-10T18:57:58.763 回答
0

这可以用于 n th rank ##

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

于 2018-02-27T10:28:16.863 回答