思路:
子查询查询出不需要的记录,
然后从总的里面排除子查询中的记录
方法一
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
FROM TestTable
WHERE ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id)AS T)
ORDER BY ID
对于数据量少的情况,第二种方法效率高
数据量大的情况第一种方法效率高
本文介绍两种SQL分页查询的方法,并对比其适用场景。方法一通过排除已查询ID实现分页,适用于大数据量;方法二利用最大ID进行筛选,适合小数据量情况。
1万+

被折叠的 条评论
为什么被折叠?



