例如,是否可以在 sql server 中获取从第 10 行到第 20 行的行?我的意思是,我通过查询数据库获得了 1800 多行,然后我想以 10 x 10 的形式显示它们。
问问题
305 次
3 回答
2
使用 CTE 添加表示每行的行号的列,然后按该列进行过滤。
;WITH MyCTE AS
(
SELECT *,
ROW_NUMBER() OVER(ORDER BY ID) RowNum
FROM Table
)
SELECT *
FROM MyCTE
WHERE RowNum BETWEEN 10 AND 20
于 2013-08-13T13:45:26.060 回答
1
或者在 SQL 2012+ 中,使用OFFSET\FETCH
....
ORDER BY ...
OFFSET 10 ROWS
FETCH NEXT 10 ROWS;
请参阅http://msdn.microsoft.com/en-us/library/ms188385%28v=SQL.110%29.aspx
于 2013-08-13T13:50:15.460 回答
0
例子:
WITH ResultSetWithRowNumber AS
(
SELECT ROW_NUMBER() OVER(ORDER BY MyField1) AS RowNumber, MyField1, MyField2
FROM MyTable
WHERE MyField2 = SomeValue
)
SELECT RowNumber, MyField1, MyField2
FROM ResultSetWithRowNumber
WHERE RowNumber BETWEEN 10 AND 20
于 2013-08-13T13:57:02.733 回答