刚学oracle,自己写了个oracle的分页查询
但是效果很不理想,出现了一些错误
请大家帮我看看怎么修改语句才对------现在表中一共10列数据,分页查询,每页显示5条数据,语句如下---------
--这个是查询第1页数据的语句
select * from (
       select  * from (
               select * from apw_ad where  active='1'  and rownum<11  order by createtime desc
        ) where rownum<= 5 order by createtime
 ) derivedtbl order by createtime desc
 ;
--------------
--这个是查询第2页数据的语句
select * from (
       select  * from (
               select * from apw_ad where  active='1'  and rownum<6  order by createtime desc
       ) where rownum<= 5 order by createtime
 ) derivedtbl order by createtime desc-------------------------------------
查询的结果出现了错误,第1页结果是正常的,第2页就不对了
第2页应该显示最后5条数据,但是他显示的却是 第1条数据和最后4条数据
怎么修改这查询语句才能正确?
急~大家帮我看下,谢谢

解决方案 »

  1.   

    select *
       from (select *
               from (select ap.*, rownum rn
                       from apw_ad ap
                      where ap.active = '1'
                      order by ap.createtime desc)
              where rn <= 10)
      where rn > 5;
      

  2.   

    mantisXF(枫の叶) ,你这个方法一直查不到最后一列
      

  3.   

    select * from (
           select  * from (
                   select rownum rn,apw_ad.* from apw_ad where  active='1'  and rownum<=page*5  order by createtime desc
           ) where rn >(page-1)*5 and rn<=page*5 order by createtime
     ) derivedtbl order by createtime descpage是你当前页码.