好忙!今天来了个新的需求:要求在 SQLServer中查询相关信息,由于框架本身是针对Oracle数据库的(相关查询、分页机制都已经写死)无奈只好研究一下SQLServer的分页机制了,其实说白了,就是匹配SQL的问题,说来不怕大家笑话,小弟SQLServer的SQL不会!^_^再加上公司不能上外网,唉~~
更糟糕的是机器上没有SQLServer的客户端,只能用java程序来验证SQL的正确性。郁闷、郁闷、郁闷啊~~~
问问老大,老大说以前写过,(我们老大有个毛病:只要他说以前...基本上就不能指望了!因为那就意味着他不会!)
硬着头皮,写吧:隐约中记得有TOP之类的关键字!
在测试了N遍之后终于有了成效!为了便于自己以后总结,先写在这里:可能各位老大们都不值得一提的东西了,希望大家不要小我哦^_^
例如:每页10条记录,那么首10条记录查询如下
SELECT TOP 10 * FROM TABLENAME WHERE 主键 NOT IN(SELECT TOP 0 主键 FROM TABLENAME ORDER BY 主键)ORDER BY 主键
写成通用的SQL:
String pageSize = 10;//每页显示数
String onPage=1;//当前页数
String sql = "SELECT TOP " + pageSize +" * FROM tablename WHERE 主键 NOT IN(SELECT TOP "+(onPage-1)*pageSize +"主键 FROM tablename ORDER BY 主键)ORDER BY 主键"
当然,在应用这个SQL之前,我们还是要先获取总的数据条数从而换算出总页数!
好了,先写到这里,如有不对,看了的各位老大,帮小弟指出来!谢谢!