在Oracle中rownum的使用

ROWNUM常見的用途就是用來分頁輸出.

比如 SELECT name  FROM member WHERE ROWNUM <= 10 這條語句就是輸出前10條紀錄,類似於

sql sever的top(select top 10 * from tablename),不過rownum對於指定編號區間的輸出應該說更強大 SELECT name   FROM (SELECT name, ROWNUM rn FROM member ) WHERE rn >= 10 AND rn <= 20 這條語句即是輸出第10到第20條紀錄,爲什麼要用嵌套查詢呢?因爲rownum本身只能用 <=的比較方式,只有轉成實例才能做 >=的比較了。

    在實際用途中,常常會要求取最近的幾條紀錄,這就需要先對紀錄進行排序後再取

rownum <= 一般常見的 SELECT * FROM (SELECT m.* FROM member m ORDER BY create_time DESC) WHERE ROWNUM <= 10 ,也許會有人說 SELECT m.*   FROM member m  WHERE ROWNUM <= 10 ORDER BY create_time DESC;

   這兩句主要的區別在於:是先排序後查,還是先查後排序。顯然第一句是先排序後查,第二句是先查後排序,兩者的用途在於自己想要得到什麼類的結果。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章