有什么办法可以在SQL Server中选择指定的行数吗?就像我的第一个查询一样,我希望获得1-5行,然后是6-10行,然后是行?提前谢谢你的答案:)
Fab*_*ler 20
对于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 @endRow
Run Code Online (Sandbox Code Playgroud)
SQL小提琴示例:http://sqlfiddle.com/#!3/b4b8c/4
对于SQL Server 2012,请尝试此操作(只需设置偏移量)
SELECT *
FROM MyTable
ORDER BY OrderingColumn ASC
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)
OFFSET
:
指定在开始从查询表达式返回行之前要跳过的行数.
FETCH NEXT
:
指定OFFSET
处理子句后要返回的行数.
的定义OFFSET
和FETCH NEXT
来自这里.
查询1:
偏移0 => 1-5
查询2:
偏移5 => 6-10等
SQL小提琴示例:http://sqlfiddle.com/#!6/ b4b8c/2
归档时间: |
|
查看次数: |
67969 次 |
最近记录: |