可能重复:
How do I limit the number of rows returned by an oracle query?
我有这个问题

select * from pr_device_reading order by date_reading DESC

注意,这个查询是规范化的,由一个方法构造,并且表名将根据该方法的参数而更改,因此我不能指定列名(而且我确实希望结果中的所有列都是这样)。
相当于
SELECT *
 FROM pr_lecture_combustibles
ORDER BY date_lecture DESC
LIMIT 10,20;

使用Oracle SQL?
我试过了
SELECT *
  FROM (SELECT *
          FROM pr_lecture_combustibles
         ORDER BY date_lecture DESC)
 WHERE ROWNUM BETWEEN 10 AND 20;

other syntax,但没有结果,“缺少表达式”消息和其他错误。
谢谢

最佳答案

如果您可以接受获取行号的附加列,那么可以应用ROW_NUMBER分析函数并执行如下操作

SELECT *
  FROM (SELECT a.*,
               ROW_NUMBER() OVER( order by date_lecture desc ) rn
          FROM pr_lecture_combustibles a)
 WHERE rn BETWEEN 10 AND 20

但是您将得到表中的所有列加上RN

关于mysql - Oracle“LIMIT n,m”相当于,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5735600/

10-12 00:38
查看更多