共計 1031 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
怎么在 oracle 中使用 rownum 實現(xiàn)分頁?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
rownum 是 Oracle 數(shù)據(jù)庫中的一個特有關鍵字,返回的是一個數(shù)字代表記錄的行號。
基礎知識:rownum 只能做 或者 = 的條件查詢,如果要 rownum 進行 51 到 100 這樣的范圍判斷,需要先查詢出每一行的 rownum,再用那個序號做判斷
獲取 51 到 100 的數(shù)據(jù)
三種分頁的寫法:
1. 使用 minus,原理就是查詢出前 100 行的數(shù)據(jù) 減去 查詢出前 50 行的數(shù)據(jù)
select * from DATA_TABLE_SQL where rownum =100
minus
select * from DATAT_ABLE_SQL where rownum =50
2. 查詢出所有數(shù)據(jù)的 rownum,然后再選擇 50 到 100 的數(shù)據(jù)(不推薦)
select * from (select t.*,rownum num from DATA_TABLE_SQL t)
where num =100 and num 50
3. 限定范圍 100 條數(shù)據(jù),并查詢出這 100 條的 rownum,然后再選擇 50 到 100 的數(shù)據(jù)
select * from
(select t.*,rownum num from DATA_TABLE_SQL t where rownum =100 )
where num 50
下面給大家拓展兩個分頁查詢語句:
1:單表查詢
SELECT * FROM (SELECT t.*,ROWNUM r FROM TABLE t WHERE ROWNUM = pageNumber*pageSize) WHERE r (pageNumber)*pageSize
2:兩張表聯(lián)查
SELECT * FROM (SELECT ROWNUM RN,XX.* FROM (SELECT 表名. 字段名, 表名. 字段名, 表名. 字段名... FROM TABLE1 t1, TABLE2 t2 WHERE t1. 字段 =t2. 字段) XX WHERE ROWNUM =pageSize*pageNumber) WHERE RN (pageNumber-1)*pageSize
看完上述內(nèi)容,你們掌握怎么在 oracle 中使用 rownum 實現(xiàn)分頁的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!
向 AI 問一下細節(jié)