2012-04-18 41 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