應該會有跟我一樣的朋友有這樣的需求,就是需要對select查詢的集合先進行一次排序(如:按建立時間排序)然後讓生成的rownum的順序與排序後的順序一致,但是用原始的rownum無法完成先排序後按排序後的順序分頁的需求,所以就用到了這個oracle函式row_number() over函式
。
demo:
select t.*, row_number() over(order by createdate desc) rm from t
這樣查詢得到的rm 也就是rownum 就是根據建立時間createdate 倒序排序過後的順序,分頁的時候也就不會出現順序錯亂的問題。
這裡說的比較簡陋,不知道能不能幫到大家,希望可以吧,安啦!
ORACLE中關於ROWNUM用法的總結
對於 oracle 的 rownum 問題,很多資料都說不支,between and,只能用以上符號 假設某個表 t1 c1 有 20 條記錄 如果用 select rownum,c1 from t1 where rownum 10,只要是用小於號,查出來的結果很容易地與一般理解在概念上能達成一致,...
關於Oracle中偽列rownum的使用簡介
由於之前沒有注意過rownum的介紹,對其認識僅僅是知道可以通過它來進行一些簡單的資料篩選 分頁等功能,最近在對其進行條件查詢篩選時,發現得到的並不是想要的資料,檢視了一些其他的文件,現在想簡單的介紹一下使用該偽列時,應當注意的事項。示例如下 從表中查詢有以下資料 當時想選擇出開始時間 start ...
關於Oracle資料庫的rownum應用
它是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,以此類推,這個偽欄位可以用於限制查詢返回的總行數,而且rownum不能以任何表的名稱作為字首。如以下語句將無法正常執行 select student.student.rownum from student 我們如...