以前記在筆記上的一點(diǎn)東西,貼上來(lái),省得以后丟了筆記,忘記了
Oracle 分頁(yè)
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
第一句是錯(cuò)誤的 由于rownum是一個(gè)總是從1開(kāi)始的偽列,Oracle 認(rèn)為這種條件不成立,查不到記錄
執(zhí)行順序從內(nèi)到外,從右到左
直接取物理地址最快
之前寫(xiě)錯(cuò)了,也沒(méi)人指出,真是凄涼
posted on 2008-03-23 16:22
EvanLiu 閱讀(10256)
評(píng)論(7) 編輯 收藏 所屬分類(lèi):
Java基礎(chǔ) 、
DB