通用脚本如下:
SELECT TOP 页大小 *
FROM(
SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM TABLEA
) as A
WHERE RowNumber > 页大小*(页数-1)
说明:假如当前页(currentPage)是第2页,每页显示10个数据(pageSzie)。那么第一页的数据就是第11-20条,所以为了显示第二页的数据,即显示第11-20条数据,那么就让RowNumber大于 10*(2-1) 即:页大小*(当前页-1)
实例如下:每页大小为100000,返回第二页数据,所以RowNumber从100001开始计算
DECLARE @PAGESIZE INT,
@PAGE INT
SET @PAGESIZE = 10000
SET @PAGE = 1
SELECT TOP (@PAGESIZE) * FROM(
SELECT ROW_NUMBER() OVER(ORDER BY A.UserId) AS RowNum,*
FROM BasUserInfo A
) A
WHERE A.RowNum > @PAGESIZE * (@PAGE -1)