每页显示条数:5第一页时候,sql是从第一条查询到第五条。
第二页时候,sql是从第六条查询到第十条。sql语句是怎么控制这个记录条数的???也就是说第一页时,sql是从第一条查询到第五条,
那么第二页时,是怎么确定到第六条上的???????

解决方案 »

  1.   


    --生成标准的查询语句(没有分页条件的) 
    SELECT * FROM ( 
                  SELECT row_.*, rownum rownum_ FROM (  
                        Sql_statement 
                  ) row_ 
                 WHERE rownum <=  pageSize * pageNumber ) WHERE rownum_ > pageSize * (pageNumber - 1)) 
      

  2.   


     
    1. 最好还是利用分析函数
    row_number()   
    比如想取出6-10条记录 select * from (
    select a.*,row_number()  rn from tab a
    )
    where rn between 6 and 10;2. 直接使用rownum 虚列
    select * from (
    select a.,rownum rn from tab a where rownum <= 10
    )
    where rn >= 6;
     
      

  3.   

    select * from (
    select a.,rownum rn from tab a where rownum <= 10
    )
    where rn >= 6;where rn >= 6; 是从第六条开始查询??? rn 怎么知道是从第六条开始查询???还是从第一条查询到第六条?