看下面這個sql語句
select t2.*
from (
select t.*, rownum as row_num from t where rownum<=20 order
by asc10
order
by asc
因為在查詢的時候,order by 的執行是在 select 之後的,所以在第一層查詢中,得到的結果可能是如下
id row_num
1 3
8 20
20 4
21 1
100 8
===20條記錄,其中row_num欄位的值在1-20
這樣的子結果集,在經過第二層過濾的時候,是得不到我們想要的結果的
id 11
20 所以需要用如下的sql語句實現分頁排序
select t3.*
from (
select t2.*, rownum as row_num from (
select
*from t order
by t.id asc
) t2 where rownum<=
20) t3
where t2.row_num>
11by t3.id asc
Oracle 三層巢狀做分頁
oracle分布查詢用三層巢狀 步驟如下 第三層 分頁過濾 select b.from 第二層 給定行號 select rownum r,a.from 第一層 排序 select from 表 order by 字段 awhere rownum 最大行 b where b.r between 最小行...
為什麼使用三層,自己的思考
為什麼分層?復用,維護方便 不用牽一髮而動全身 在bll層傳呼叫儲存過程 傳儲存過程名 還是在bll中寫sql 1 更好的維護和可讀性。它集中在乙個地方,能夠使三層架構的實現更加簡單 儲存過程將組成資料層 部署到客戶時,要修改邏輯只需修改儲存過程,無需重新編譯bll元件。除非增加儲存過程應用到程式中...
Map集合及三層巢狀
1.定義 無序,以鍵值 key,value 對的形式儲存資料,鍵唯一,值不唯一 注意 1 鍵key的底層結構為set集合,其特徵之一是無序 2 值value的底層結構為collection集合,其特徵之一是物件可重複 3 map集合不繼承collection介面 2.遍歷方式 3種 1 獲取鍵key...