SELECT   *   FROM   (Select   字段1,字段2,字段3,rownumber()   over(ORDER   BY   排序用的列名   ASC)   AS   rn   from   表名)   AS   a1   WHERE   a1.rn   BETWEEN   10   AND   20  
我用这个查询将分页的SQL已经写出来了!
可是这之后我却一点思路都没有了!
我的环境是JSP+Servlet的做法,不是用对象传的只是使用上面的SQL得到结果集。之后的“总共×页,首页,上一页,正在多少页,下一页,尾页”一个都做不出了!请大家帮帮告诉我一下吧!!

解决方案 »

  1.   

    你必须传给sql至少两个变量 Page,PageSize;
    SQL为:SELECT   *   FROM   (Select   字段1,字段2,字段3,rownumber()   over(ORDER   BY   排序用的列名   ASC)   AS   rn   from   表名)   AS   a1   WHERE   a1.rn   BETWEEN   (Page-1)*PageSize   AND   Page*PageSize;  
    我用这个查询将分页的SQL已经写出来了!翻页用<a href="page.jsp?page=${page-1}&pageSize=${pageSize}>之类
      

  2.   

    Page这个属性要减两次吗?
    在网页减了一次,在数据库中还要在减一次?
      

  3.   

    针对SQLSERVER的分页方法,自己传参数进来,替换常量方法二:(针对表好用,视图不好用)
    select top 10 * from tablename where id not in (select top 10*4 id from tablename)
    //10 每页显示记录数
    //4 第几页
    //id 主健方法三:(针对视图也好用,相对第二种方法效率低一些)
    select * from 
    (select top 20 * from v_LkFaceValue ) ss
    where trnbr not in (select top 10 trnbr from v_LkFaceValue)
      

  4.   

    楼上的兄弟,我用数据库不是SQLSEVER的啊!是用的DB2的数据库啊!
      

  5.   

    分页有很多,想偷懒就用displaytag,自带了分页,样式也可以自己改