【发布时间】:2021-11-12 23:22:06
【问题描述】:
如何在 Azure 的 SQL 查询中实现分页 具体来说,如何指定limit和offset ....
我应该每页显示 50 条记录,而数据库中大约有 4000 条记录
我正在为此编写一个 API 以使用 SQL 查询来获取记录....如何在 MS SQL 查询中指定它
【问题讨论】:
标签: sql-server azure pagination
如何在 Azure 的 SQL 查询中实现分页 具体来说,如何指定limit和offset ....
我应该每页显示 50 条记录,而数据库中大约有 4000 条记录
我正在为此编写一个 API 以使用 SQL 查询来获取记录....如何在 MS SQL 查询中指定它
【问题讨论】:
标签: sql-server azure pagination
SELECT * FROM
yourtable order by someuniquecolumn
OFFSET 0 ROWS FETCH NEXT 50 ROWS ONLY ;
您也可以使用如下变量:
DECLARE
@pagenum AS INT = 1,
@pagesize AS INT = 10;
SELECT *
FROM yourtable
ORDER BY someuniquecolumns
OFFSET (@pagenum - 1) * @pagesize ROWS FETCH NEXT @pagesize ROWS ONLY;
因为,这获得了更多的选票,添加一些关于偏移量的更多信息,获取..
假设一个有 1000 行的表,当您执行 offset 800,fetch next 10 rows only....时,Sql 服务器将读取前 800 行,然后仅获取接下来的 10 行。但是使用第二种方法,您将进行精确查找,并具有良好的索引..
我从Itzik Ben-Gan的视频中看了这么久,但现在好像找不到了
参考资料:
http://sqlmag.com/blog/sql-server-2012-t-sql-glance-offsetfetch
【讨论】: