温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQL分页查询怎么写

发布时间:2026-09-16 13:58:17 来源:亿速云 阅读:93 作者:小樊 栏目:数据库

SQL 分页查询的写法取决于你使用的数据库类型,下面按常见数据库给你总结:


一、MySQL / PostgreSQL(推荐写法)

使用 LIMITOFFSET

SELECT *
FROM table_name
ORDER BY id
LIMIT 10 OFFSET 20;

含义:

  • LIMIT 10:每页 10 条
  • OFFSET 20:跳过前 20 条(第 3 页)

简化写法:

LIMIT 20, 10;
-- 等价于 LIMIT 10 OFFSET 20

二、SQL Server(2012+)

使用 OFFSET FETCH

SELECT *
FROM table_name
ORDER BY id
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;

三、Oracle(12c 之前)

使用 ROWNUM

SELECT *
FROM (
    SELECT t.*, ROWNUM rn
    FROM (
        SELECT * FROM table_name ORDER BY id
    ) t
    WHERE ROWNUM <= 30
)
WHERE rn > 20;

四、Oracle(12c 及以后)

支持 OFFSET FETCH

SELECT *
FROM table_name
ORDER BY id
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;

五、通用分页公式

假设:

  • pageNum:第几页(从 1 开始)
  • pageSize:每页条数
OFFSET = (pageNum - 1) * pageSize
LIMIT  = pageSize

六、分页注意事项

  1. 一定要加 ORDER BY,否则分页结果不稳定
  2. 数据量大时,分页可能慢,建议:
    • 使用索引字段排序
    • 用「游标分页(基于 ID)」代替 OFFSET

如果你告诉我:

  • 用的什么数据库
  • 表结构或具体需求

我可以帮你写最优分页 SQL

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI