簡體   English   中英

在SQL Server查詢中動態選擇記錄范圍

[英]Selecting record range dynamically in a SQL Server query

我要進行很大的查詢,然后轉換為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腳本調用此查詢,因此我可以將其負載分開調用十次,例如將x,y替換為1to10。

示例選擇第一個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM