以前記在筆記上的一點東西,貼上來,省得以后丟了筆記,忘記了
Oracle 分頁
select a.*, rownum r
from (select * from lg_order o order by o.order_id) a
where rownum <= 20
and rownum >= 10
select *
from (select a.*, rownum r
from (select * from lg_order o order by o.order_id) a
where rownum <= 20) b
where r >= 10
select *
from (select rid
from (select rownum rn, rid
from (select rowid rid from lg_order o order by o.order_id)
where rownum <= 20)
where rn >= 10) t1,
lg_order t2
where t2.rowid = t1.rid
第一句是錯誤的 由于rownum是一個總是從1開始的偽列,Oracle 認為這種條件不成立,查不到記錄
執(zhí)行順序從內(nèi)到外,從右到左
直接取物理地址最快
之前寫錯了,也沒人指出,真是凄涼
posted on 2008-03-23 16:22
EvanLiu 閱讀(10257)
評論(7) 編輯 收藏 所屬分類:
Java基礎(chǔ) 、
DB