有没有办法让 Oracle 查询的行为像包含 MySQL 限制子句一样?在 MySQL 中,我可以这样做:select * from sometableorder by namelimit 20,10 获取第 21 到第 30 行(s...
有没有办法让 Oracle
查询表现得像包含 MySQL limit
子句?
在 MySQL 中,我可以这样做:
select *
from sometable
order by name
limit 20,10
获取第 21 至第 30 行(跳过前 20 行,给出接下来的 10 行)。行是在 之后选择的 order by
,因此它实际上是按字母顺序从第 20 个名称开始的。
在 Oracle 中,人们唯一提到的就是 rownum
伪列,但它是 在之前 order by
,这意味着:
select *
from sometable
where rownum <= 10
order by name
将返回按名称排序的随机十行,这通常不是我想要的。它也不允许指定偏移量。