SQL分页有三种常用方法,按效率从高到低:
1.效率最高
SELECT TOP(分页记录数) * FROM 表名 WHERE ID> ( SELECT ISNULL(MAX(ID),0) FROM ( SELECT TOP(分页记录数*(页码-1)) ID FROM 表名 ORDER BY ID ) A ) ORDER BY ID
2.效率次之
SELECT top(分页数) * FROM 表名 where ID not in ( SELECT Top(分页记录数*(页码-1)) ID from 表名 order by ID ) order by ID
3.效率最差却最通用,采用游标卡尺
SELECT TOP 分页记录数 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY ID) AS RowNumber,* FROM 表名 ) A WHERE RowNumber > 分页记录数*(页码-1)