求个经典存储过程分页 谢谢
由于数量属于海量,必须要求分页
想了很多办法
自己总弄不好
希望能够得到前辈的帮助谢谢

解决方案 »

  1.   

    从一个已序的列表中不断的检索,例如:
    select id,col_a,col_2,col_3,... from 
    (select id,col_a,col_2,col_3,... from my_tab order by id)
    where id>last_retrieve_id and rownum < rows_in_page;
      

  2.   

    select * from (select t.* , rownum rn from table_name t where rownum <= 20) tt where tt.rn>10
      

  3.   

    select [需要显示的字段] from [表名 ¦视图名] where [主键字段] in     ( select top PageSize [主键字段] from 
            (select top {PageSize * PageIndex} [主键字段] , [排序字段] from    --有几个排序字段就写几个字段             [表名 ¦视图名] 
                [ where 查询条件 ] 
                order by 
                
                    [排序字段1] asc ¦desc , 
                    [排序字段2] desc ¦asc, 
                    
                    [主键字段] asc ¦desc    
            ) as aa    
            order by    
                [排序字段1] desc ¦asc,        --如果上面是倒序,那么这里就是正序,下同 
                    [排序字段2] asc ¦desc , 
                        
                        [主键字段] desc ¦asc     ) order by 
        [排序字段1] asc ¦desc,    --如果上面是倒序,那么这里就是正序,所谓颠颠倒倒嘛。 
        [排序字段2] desc ¦asc, 
        
        [主键字段] asc ¦desc