用top实现分页,这是一个效率高和速度快的方法,而且简单。关于这给还有个人的一小段技术面试的时候的小插曲,觉得自己的真是孤陋寡闻,没有真正见过世面,这次我真正的体会到了一些重要的东西。同时我也认识到了自己的不足,通过实践来验证才是最好的方式:
实现分页的模板:
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
页数是按照1到总页数。当页数是0时不能要后面的那一段,页数为1时是第2页,2时第三页,3时第四页...
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
页数是按照1到总页数。当页数是0时不能要后面的那一段,页数为1时是第2页,2时第三页,3时第四页...
先定位要从哪里开始,然后通过id取规定大小的数据。
例子:
SELECT TOP 20 *
FROM test
WHERE (id >(SELECT MAX(id)
FROM (SELECT TOP (20*4) id
FROM test
ORDER BY id) AS T))
FROM test
WHERE (id >(SELECT MAX(id)
FROM (SELECT TOP (20*4) id
FROM test
ORDER BY id) AS T))