在Oracle中取得查詢結果的前10條或第10條到第20條記錄
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;
兩種
這兩句主要的區別在於:是先排序後查,還是先查後排序。
顯然第一句是先排序後查,第二句是先查後排序,兩者的用途在於
自己想要得到什麼類的結果。
如果要寫入.xml文件中可將sql中的“<”和 ">" 轉換成對應的<和>