数据表分页查询
在 MSSQL(SQL Server)中,分页查询的 SQL 语句可以使用 OFFSET 和 FETCH NEXT,或者 ROW_NUMBER() 方式来实现。
方法 1:使用 OFFSET ... FETCH NEXT (适用于 SQL Server 2012 及以上)
SELECT * FROM TableName ORDER BY ColumnName OFFSET (@PageIndex - 1) * @PageSize ROWS FETCH NEXT @PageSize ROWS ONLY;
说明
@PageIndex:当前页码(从 1 开始)。@PageSize:每页显示的记录数。ORDER BY ColumnName:必须有ORDER BY,否则OFFSET不能使用。
方法 2:使用 ROW_NUMBER()(适用于 SQL Server 2005 及以上)
WITH CTE AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY ColumnName) AS RowNum FROM TableName ) SELECT * FROM CTE WHERE RowNum BETWEEN (@PageIndex - 1) * @PageSize + 1 AND @PageIndex * @PageSize;
xcoder使用的是这个方法

浙公网安备 33010602011771号