Sql server 如何在行号的间隔之间获得行?
例如,在sql server中是否可以获取从第10行到第20行的行?Sql server 如何在行号的间隔之间获得行?,sql-server,Sql Server,例如,在sql server中是否可以获取从第10行到第20行的行? 我的意思是,通过查询数据库,我得到了1800多行,然后我想10×10地显示它们 使用CTE添加一列,该列表示每行的行号,然后按该列进行筛选 ;WITH MyCTE AS ( SELECT *, ROW_NUMBER() OVER(ORDER BY ID) RowNum FROM Table ) SELECT * FROM MyCTE WHERE RowNum
我的意思是,通过查询数据库,我得到了1800多行,然后我想10×10地显示它们 使用CTE添加一列,该列表示每行的行号,然后按该列进行筛选
;WITH MyCTE AS
(
SELECT *,
ROW_NUMBER() OVER(ORDER BY ID) RowNum
FROM Table
)
SELECT *
FROM MyCTE
WHERE RowNum BETWEEN 10 AND 20
或者在SQL 2012+中,使用
OFFSET\FETCH
....
ORDER BY ...
OFFSET 10 ROWS
FETCH NEXT 10 ROWS;
请参见示例:
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