SQLServer的分页SQL

好忙!今天来了个新的需求:要求在 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之前,我们还是要先获取总的数据条数从而换算出总页数!

好了,先写到这里,如有不对,看了的各位老大,帮小弟指出来!谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值