1。ROW_NUMBER方式
1 WITH Paging AS 2 ( 3 SELECT * 4 , ROW_NUMBER() OVER (order by ID DESC) AS RowNumber 5 FROM [TableName] 6 ) 7 SELECT * 8 FROM Paging 9 WHERE RowNumber > 0 AND RowNumber <= 10
2。OFFSET 方式
1 SELECT * 2 FROM [TableName] 3 ORDER BY ID DESC 4 OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;
这种方式有一定的灵活性,可以使用变量传入分页参数,如:
1 ORDER BY ID DESC 2 OFFSET ( @PageIndex - 1 ) * @PageSize ROWS 3 FETCH NEXT @PageSize ROWS ONLY
以下是OFFSET的官方解释:(参考地址:https://msdn.microsoft.com/zh-cn/magazine/gg699618(SQL.110).aspx)
OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }