Oracle分页

1.一个通用的格式如下:

    --rownum 是记录序号(1,2,3...),
    --注意:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序。

SELECT * FROM 
( 
    SELECT A.*, rownum r FROM 
    ( 
        SELECT * FROM table_name ORDER BY PubTime DESC 
        --排序只能写在这里,不能写在外面,要特别小心。
     ) A 
     WHERE rownum <= 10 
) B 
WHERE r > 5;

 2.如果不需要排序,则可以少一层嵌套:

select * from 
(
   select rownum r,tablename.* from tablename 
   --这里就算有排序,事实上也没用。
)
where r between 10 and 20;

 3.简单的查找最大值或最小值时,也可以这样:

 

--取最大的
select * from   
(
   select * from  table_name order by id desc,place_id  desc
)   
where rownum<5;   

--取最小的
select * from   
(
   select * from  table_name order by id asc,place_id  asc
)   
where rownum<5;
   

     从一篇CSDN博客上找到的,觉得挺有用,所以自己记下来。

 

你可能感兴趣的:(oracle,sql)