首页 >数据库 >mysql教程 >如何使用 SQL 的 ROWNUM 检索特定范围的行?

如何使用 SQL 的 ROWNUM 检索特定范围的行?

DDD
DDD原创
2025-01-06 00:47:38444浏览

How to Retrieve a Specific Range of Rows Using SQL's ROWNUM?

检索特定范围的 SQL ROWNUM 值

在 SQL 中,ROWNUM 伪列可用于检索结果中当前行的位置放。当返回有限范围的行时,它通常很有用。但是,您当前的查询似乎在返回特定范围内的行时遇到问题。

要纠正此问题,需要稍作修改。您应该使用子查询来创建包含原始数据和行号的临时表或 CTE(公用表表达式),而不是使用标准 ROWNUM 伪列。这种方法确保在应用过滤条件之前评估行号。

更正后的查询将如下所示:

SELECT *
FROM
(
  SELECT m.*, ROWNUM() OVER (ORDER BY m.id) AS r
  FROM maps006 m
)
WHERE r > 49 AND r < 101

在此查询中:

  • ROWNUM() OVER (ORDER BY m.id) 创建一个名为 r 的新列,其中包含maps006 表中每行的行号,按顺序排序id 列。
  • 子查询别名为 m 以匹配原始表名称。
  • 然后主查询使用 r 所需的范围(即大于 49 的行)过滤子查询结果且小于 101)。

此修改后的查询应成功检索指定 ROWNUM 内的行范围。

以上是如何使用 SQL 的 ROWNUM 检索特定范围的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn