可能重复:
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,但我没有结果,“缺少表达式”消息和其他错误。
由于
答案 0 :(得分:2)
如果您可以接受为行号获取额外的列,则可以应用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
列