oracle中的rownum

oracle數據庫不支持類似mysql的limit功能,所以要限制查詢個數的時候常會用到rownum。rownum時oracle的關鍵字。

1. romnum是oracle系統給結果集的一個序列值,所以必須是有結果集纔會有rownum。rownum既可以是查詢條件也可以作爲查詢結果字段。

2.使用rownum作爲查詢條件時,只能使用符號<,<=,!=,不支持符號>,>=,between...and...(>=1,>0除外),並不是說用>,>=,between and會報sql語法錯,而是查詢結果爲空。用例子解釋:

(1)select * from cti_batch where rownum<10;oracle系統執行這條查詢語句,從緩存或數據庫中取出第一條記錄,rownum=1,符合查詢條件,放入結果集;接着取出第二個,rownum=2,符合查詢條件,也放入結果集,直到第十條記錄,rownum=10,不符合查詢條件這條記錄會捨棄,接着取下一條rownum=10,不符合,捨棄,以此類推,直到查詢到最後一行。

(2)select * from cti_batch where rownum>10:執行這條語句時,從緩存或數據庫中取第一條記錄,rownum=1,不符合條件,所以不能作爲查詢結果,捨棄,取下一條記錄,rownum=1,還不符合,以此類推,查詢結果爲空。

(3)select * from cti_batch where rownum!=10:執行這條sql語句,取出第一條記錄,rownum=1,符合查詢條件,是放入查詢結果集,接着取下一條記錄,rownum=2,符合條件,直到第十條記錄,rownum=10,不符合條件,捨棄該記錄,取下一條,rownum=10還不符合,捨棄,以此類推,直到查詢到最後。這條語句的查詢結果和(1)是一樣的。

所以,oracle系統查詢時,第一個符合條件的結果rownum=1,所以查詢條件一定是包含1或從1開始的。

3.

(1)

image 

image

(2)

image

image

(3)

image

image

(4)

image

image

發佈了60 篇原創文章 · 獲贊 8 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章