在SQL Server查询中动态选择记录范围



我有一个很大的查询,然后转换为JSON,因此在转换过程中我在Java中获得了OutofMemory的例外。我要实现的目标是将查询分开多次动态调用。

SELECT ROWS x/10 multiply by (SELECT  COUNT(*) FROM myquery) to 
            y/10 multiply by (SELECT  COUNT(*) FROM myquery) 
FROM myquery

我正在从http端点上的python脚本调用此查询

示例选择第一个0/10至1/10记录,然后选择1/10至2/10,然后选择2/10至3/10 ... 9/10至10/10。

您需要一个字段才能订购行调用order_field。并使用分析函数 ntile(10)创建10组

然后通过变量@YourPage表示您想要哪个页面

  SELECT *
  FROM (
        SELECT *,
               NTILE(10) OVER (ORDER BY order_field) as page_number
        FROM yourTable
       ) T
  WHERE T.page_number = @YourPage

最新更新