带分页的sqlserver查询

       因为之前项目中,分页信息与查询信息封装在不同的层面,一直没能认真考虑,多条件查询与分页的关系,这次有机会了解到,希望对大家有所帮助!

首先我们要明确一个问题,查询条件是直接加在分页查询之后还是之前?很明显,稍微有点经验的程序员都知道查询应该在分页之前执行,但是在实际编码过程中,对于我这样的新手而言,操作sql语句时只是一味地select ,where根本没能考虑所谓分页与查询的关系,这是不对的。下面的代码是本人经过多次测试的结果:

 String SQL="SELECT * FROM ( "+
               " SELECT ROW_NUMBER() OVER(ORDER BY ID) AS _NUMBER, "+
               "       * FROM (SELECT * FROM item WHERE 1 = 1  ";
              
       String SQL1 =" )a ) AS TBL "+
               " WHERE _NUMBER BETWEEN ? and ? ";
       
       if(!no.equals("NONE") ){
        SQL = SQL+" and no like "+find;
       }
       if(!area.equals("NONE")){
        SQL = SQL+" and area like "+find1;
       }
       if(!name.equals("NONE")){
        SQL = SQL+" and name like "+find2;
       }
       String SQL2 =SQL+SQL1;
       System.out.println(SQL2);

SQL2即为多条件分页查询。


本人希望大家多看书,多学习基础,网络虽好,但是就像总监说的一样,国内的大多数程序员在编写代码时太过依赖他人,只要自己的需求看着和别人的相似,就把别人的代码拿过来直接复制粘贴,结果错了又把另一个人的代码复制粘贴,最后搞得越来越乱!

再次希望大家打牢基础,好好学习!培养思维习惯很重要!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值