查询Select * From Person Where rownum > 100 and rownum < 200
返回一个空结果集,因为ROWNUM在检索行时将数字分配给行。 WHERE
子句过滤 after ROWNUM 已分配的数字。 ROWNUM 大于 100 的行仅在前 100 行已被处理并分配 ROWNUM 值之后才被视为。
Oracle 12c 的 Top-n Row Limiting 功能提供了一种更直接的分页方法。 语法 Select ... FROM ... WHERE rownum BETWEEN lowerBound AND upperBound
直接选择指定范围内的行,无需子查询。
为了避免显示 ROWNUM 列,请在外部查询的 SELECT
列表中显式列出所需的列。或者,创建一个视图来封装查询或使用 SQL*Plus 的 NOPRINT
命令来抑制不需要的输出。
使用 ROWNUM 进行准确分页取决于正确的查询构造。 至关重要的是,使用唯一标识符(主键)对结果进行排序,以确保跨页面的行选择一致。 虽然按 ROWNUM 排序本身不会否定 FIRST_ROWS(N)
,但使用唯一标识符可以保证检索到预期的行。
以上是ROWNUM 在 Oracle 分页查询中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!