是否有任何方法可以在SQL Server中选择指定的行数?就像我的第一个查询一样,我希望获得第1-5行,然后是第6-10行,然后是更高的行?提前感谢您的回答:)
发布于 2013-06-23 18:46:44
对于SQL Server 2005+ (设置@startRow和@endRow):
SELECT OrderingColumn
FROM (
SELECT OrderingColumn, ROW_NUMBER() OVER (ORDER BY OrderingColumn) AS RowNum
FROM MyTable
) AS MyDerivedTable
WHERE MyDerivedTable.RowNum BETWEEN @startRow and @endRowSQL fiddle示例:http://sqlfiddle.com/#!3/b4b8c/4
发布于 2013-06-23 18:18:34
对于SQL Server 2012,请尝试此操作(只需设置偏移量)
SELECT *
FROM MyTable
ORDER BY OrderingColumn ASC
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY OFFSET
指定在开始从查询表达式返回行之前要跳过的行数。
FETCH NEXT
指定在处理OFFSET子句后要返回的行数。
OFFSET和FETCH NEXT的定义来自here。
问题1:
偏移量0 => 1-5
问题2:
偏移量5 => 6-10等
SQL fiddle示例:http://sqlfiddle.com/#!6/b4b8c/2
https://stackoverflow.com/questions/17259716
复制相似问题