mysql - 甲骨文 "LIMIT n,m"等效

标签 mysql sql oracle

<分区>

Possible Duplicate:
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 - 甲骨文 "LIMIT n,m"等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735600/

相关文章:

mysql - 如何在 Oracle 中获取相似的值

mysql - 查询获取Mysql中特定单元格的值

php - MySQL 结构完整性与简单性?

MYSQL 查询 - 如何只为在另一个表中具有特定值的 ID 构造总计?

oracle - 创建以字母数字开头的 Oracle 序列

sql - 防止重复预订

php mysql过滤的分页结果在下一页上不起作用

MySQL 左连接查询不起作用

sql - T-SQL : Omit/Ignore repetitive data from a specific column

mysql - 艰难的mysql查询,需要用户之间共同的词