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