2012-04-18 55 views
2

我在找這取決於​​它們被定位在哪裏得到的查詢某些SQL的結果,例如,考慮下面的代碼如何讓某些SQL結果

SELECT * FROM Product ORDER BY id asc 

可能返回至少100個左右的結果。

問題是,我怎樣才能得到第一個1-10的結果,然後在另一個不同的,單獨的查詢,我怎麼能得到11-20的結果甚至得到結果定位51 - 60的查詢?

回答

2

使用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