oracle快速了解法,【oracle】rownum的快速了解
oracle數據庫有一個特有的字段或者屬性rownum,常用在分頁查詢。下面就來學習一下它吧。
【是什么】
rownum是oracle數據庫從數據文件或緩沖區中讀取數據的順序,是對結果集加的一個偽例,是oracle特有的隱藏的字段,記錄的是行數。
例如:數據庫t_user表中有兩條數據,如下:
Select* from t_user,得到的結果集,實際上,如下圖,只不過rownum是隱藏屬性。
【相關用法】
假設t_user表中有以下數據(以下排序都以此表為例)
1.rownum的排序
rownum是在取數據的時候產生的序號,但是具體是怎么對數據進行排序的就需要注意一下了。如下圖:
如上圖所示,結果集并沒有按照user_Id進行排序,反而是按照數據插入數據的真正實踐進行的排序。為了解決這個問題,我們可以用子查詢,如下:
這樣數據就乖乖的按照我們orderby的user_Id排序了。
2.rownum
對于直接查詢時,對rownum的=、進行取值
①直接查詢rownum=1,正確;rownum
②直接查詢rownum=2,不正確,這是因為rownum都是從1開始的,但是1以上的自然數在rownum做等于判斷時都認為是false條件,所以查詢不出數據。如下圖:
③使用子查詢就沒那么麻煩了,但是有一點,就要要對rownum進行命名,不然rownum到底是屬于內層的呢?還是外層的呢?會導致歧義,如下對比圖:
【測試】
理解一下下面這段代碼最后的查詢結果吧:
SELECT
user_id,user_name,PASSWORD,contact_tel,email,create_date
FROM
(
SELECT
rownum rn,user_id,create_date
FROM
(
SELECT
user_id,create_date
FROM
t_user
WHERE
user_id <> 'root'
ORDER BY
user_id
)
WHERE
rownum <= 6
)
WHERE
rn > 1
結果如下:(先取再排序再取)
總結
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。
總結
以上是生活随笔為你收集整理的oracle快速了解法,【oracle】rownum的快速了解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle临时表的优点,详解Oracl
- 下一篇: oracle 基于备份 duplicat