【问题标题】:Server side pagination in Azure ( MS SQL )Azure 中的服务器端分页 (MS SQL)
【发布时间】:2021-11-12 23:22:06
【问题描述】:

如何在 Azure 的 SQL 查询中实现分页 具体来说,如何指定limit和offset ....

我应该每页显示 50 条记录,而数据库中大约有 4000 条记录

我正在为此编写一个 API 以使用 SQL 查询来获取记录....如何在 MS SQL 查询中指定它

【问题讨论】:

    标签: sql-server azure pagination


    【解决方案1】:
    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

    【讨论】:

    • 帮助了.. 谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 2013-01-01
    • 2015-11-03
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多