这个问题已经在这里有了答案 :
9年前关闭。
可能重复: 如何限制oracle查询返回的行数?
我有这个查询
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;
和其他语法,但没有结果,“缺少表达式”消息和其他错误。
谢谢
如果您可以接受为行号获取额外的列,则可以应用ROW_NUMBER解析函数并执行类似的操作
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列
RN