MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » *怎么实现分页加速查询*

*怎么实现分页加速查询*(2)

www.MyException.Cn  网友分享于:2013-01-30  浏览:44次

------解决方案--------------------
假设是User表
主键是id
当前要查询第2页, 每页显示5条数据
sqlserver 环境
SELECT * FROM (SELECT TOP n * x FROM USER) WHERE id NOT IN (SELECT TOP (n - 1) * x id FROM USER); 

FROM子句中的n*x 就等于2 * 5 = 10;
WHERE子句中的(n - 1) * x 就等于(2-1)*5 = 5;
最后得到的sql(呵呵..不好意思...上面的语法有点问题.)

SELECT * FROM (SELECT TOP 10 * FROM user) AS users WHERE users.id NOT IN (SELECT TOP 5 id FROM user); 

这里是使用了主键...其实...任何的unique的列都是可以作为WHERE子句中的那个集合条件的....当然..如果你的数据库设计的够规范(主键与业务无关)....那么用主键是最好不过了....毕竟, 其他与业务有关的东西是可能会变更成为非unique的列的.

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有