一条SQL语句搞定Sql Server 2000 分页

来源:互联网 发布:无限鼠标 知乎 编辑:程序博客网 时间:2024/05/16 14:53
思路:
子查询查询出不需要的记录,
然后从总的里面排除子查询中的记录
方法一
SELECT TOP 页大小 *
FROM
 Users
WHERE
 (ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC))
ORDER BY
 ID DESC
 
注:页大小指的是每页显示的条数。黄底部分是需要用程序运算后的一个数字。
思路:
子查询查询出不需要的记录的最大ID数
然后从总的里面查询大于该ID的记录
方法二
SELECT TOP 页大小 *
FROM TestTable
WHERE ID >
          (SELECT MAX(id)
         FROM (SELECT TOP 页大小*页数 id
                 FROM 表
                 ORDER BY id)AS T)
ORDER BY ID
对于数据量少的情况,第二种方法效率高
数据量大的情况第一种方法效率高
 
原创粉丝点击