1樓:我tm不管
如何實現分頁提取記錄
方法1:oracle的rownum偽列返回查詢的行序號。
例如要查詢表的前10條記錄,可以使用
select * from tablename where rownum<=10
但是要返回第11-第20條記錄,嘗試以下的語句
select * from tablename where rownum<=20 and rownum>=11;
這個人報錯。返回0條記錄。因為rownum是偽列,不能用》=條件
使用以下方法可以查詢第11-第20條記錄
select * from
(select rownum rn ,t.* from tablename t where rownum<=20) where rn>=11;
方法2:使用分析函式row_number實現分頁
select * from (select row_number() over (order by id) rn,t.* from tablename t)
where rn between 11 and 20;
方法3:使用集合運算minus實現分頁
select * from tablename where rownum<=20 minus
select * from tablename where rownum<11;
點評:方法1在查詢前幾頁時速度很快。但在資料量很大時,最後幾頁速度比較慢。
方法2查詢效率比較穩定,是推薦使用的方法。
方法3只適合查詢結果在200行以內的情況,記錄數很多時會導致oracle錯誤,需謹慎使用。
看看這個吧,你就會明白了
2樓:來自蘄州古城貌若天仙的雪梨
/*查前三*/
select num,job from (select count(*) num,job from emp group by job order by num desc) where rownum<=3;
/*查第
三、四*/
select num,job from (select rownum r,num,job from (select count(*) num,job from emp group by job order by num desc)) where r between 3 and 4;
3樓:匿名使用者
不行,rownum是偽序列,必須從1開始,如果沒有1就沒有2,也就沒有m.
4樓:匿名使用者
不行!!!!!!!!!
求一條從安徽阜陽到廣州的最快路線。做火車的
t179次列車,始發站 濟南 終到站 廣州 歷時15 13 t159次列車,始發站 青島 終到站 廣州東 歷時 16 15 或者先從阜陽坐車到武漢然後從武漢做去廣州的車,算下時間大概10小時左右 從阜陽坐車廣州 大概在者拿桐4.5 5小時然後到武漢坐車到廣州 武漢到廣州的車很多很多 幾乎10多分鐘一...
你最近從報紙上讀到哪些新聞了,從中選擇一條寫下來(急急急急急
吳莫愁地鐵驚悚海報嚇哭5歲孩童。中國將對釣島精確測繪 一代宗師 廣州宣傳 公安部 乙個駕駛本最多只能為三輛車銷分 最近國內外有哪些重要新聞?請你選擇一條寫下來,並對此事發表一下你的看法.稜鏡門應該是比較有代表性的。由於敏感詞問題,具體請參考維基百科 稜鏡計畫 從你讀過的報紙中摘錄一條你最感興趣的新聞...
請你選擇一條格言作為自己的座右銘
寧可我負天下人,不叫天下人負我 曹操 生當作人傑,死亦為鬼雄 寫一則關於學習的名言作為自己的座右銘 1.世上無難事,只要肯登攀。2.勤奮是學習的枝葉,當然很苦,智慧型是學習的花朵,當然香郁。3.不求做的最好,但求做的更好。4.冰凍三尺,非一日之寒,成大事者不拘小節。5.智者千慮,必有一失 遇者千慮,...