怎么在oracle中使用rownum實(shí)現(xiàn)分頁?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)專注于滕州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。滕州網(wǎng)站建設(shè)公司,為滕州等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
rownum是Oracle數(shù)據(jù)庫中的一個(gè)特有關(guān)鍵字,返回的是一個(gè)數(shù)字代表記錄的行號(hào)。
基礎(chǔ)知識(shí):rownum只能做<或者<=的條件查詢,如果要rownum進(jìn)行51到100這樣的范圍判斷,需要先查詢出每一行的rownum,再用那個(gè)序號(hào)做判斷
獲取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
下面給大家拓展兩個(gè)分頁查詢語句:
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實(shí)現(xiàn)分頁的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!