在12.1之前,Oracle不支持LIMIT或OFFSET关键字。如果要检索结果集的行N到M,您需要类似以下内容:

SELECT a.*

FROM (SELECT b.*,

rownum b_rownum

FROM (SELECT c.*

FROM some_table c

ORDER BY some_column) b

WHERE rownum <= <>) a

WHERE b_rownum >= <>

或使用分析函数:

SELECT a.*

FROM (SELECT b.*,

rank() over (order by some_column) rnk

FROM some_table)

WHERE rnk BETWEEN <> AND <>

ORDER BY some_column

这两种方法中的任一种将排序给出排序结果的行N到M.

在12.1和更高版本中,可以使用OFFSET和/或FETCH [FIRST | NEXT]运算符:

SELECT *

FROM some_table

ORDER BY some_column

OFFSET <> ROWS

FETCH NEXT <> ROWS ONLY

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐