2
我在找這取決於它們被定位在哪裏得到的查詢某些SQL的結果,例如,考慮下面的代碼如何讓某些SQL結果
SELECT * FROM Product ORDER BY id asc
可能返回至少100個左右的結果。
問題是,我怎樣才能得到第一個1-10的結果,然後在另一個不同的,單獨的查詢,我怎麼能得到11-20的結果甚至得到結果定位51 - 60的查詢?
我在找這取決於它們被定位在哪裏得到的查詢某些SQL的結果,例如,考慮下面的代碼如何讓某些SQL結果
SELECT * FROM Product ORDER BY id asc
可能返回至少100個左右的結果。
問題是,我怎樣才能得到第一個1-10的結果,然後在另一個不同的,單獨的查詢,我怎麼能得到11-20的結果甚至得到結果定位51 - 60的查詢?
有許多方法,下面是一個使用ROW_NUMBER一種方法:
使用CTE獲得的行數,然後由排列查詢
with your_query as(
SELECT ROW_NUMBER() OVER(ORDER BY ID ASC) AS Row, *
FROM Product
)
select * from your_query
where Row >=5 and Row<=10