随笔 - 30  文章 - 2  评论 - 8  阅读 - 19338 

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)

 

posted on   Johnliu  阅读(251)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示