Oracle分頁查詢


select * from teacher where tno>1090

--回憶之前的MYSQL分頁
select * from teacher limit (pageIndex-1)*pageSize,pageSize

--oracle的分頁 需要偽列? 什么是偽列!
--偽列 可以從表中查詢的到!每個表都有這個偽列!但是不能對偽列
--進行增刪改操作!偽列的值是不允許被改變的
--rowid:存儲的是表中行的存儲地址,是唯一的!可以使用rowID定位到表中的一行
--增長的規律: 最后一個字母。默認從A開始 A-Z a-z 0-9 + / 倒數第二位變成B
--rownum:返回的是查詢結果中 行的序號!
--rownum只能對=1或者<n進行篩選,不能對>n進行篩選
--如果想使用>n來查詢,那么必須通過子查詢建立臨時表,
--然后讓rownum成為臨時表中的列,然后限定條件使用偽列的別名

 

--查詢教師表中的薪水最高前5名
select * from
(select * from teacher
order by sal desc)
where rownum<6

 


--查詢教師表中的薪水第5名
select * from(
select t.*,rownum rw from
(select * from teacher order by sal desc) t
)
where rw=5

--使用分析函數 排序
select * from
(
select t.*,dense_rank() over(order by sal desc) rank
from teacher t
)
where rank=5


--查詢 教師表中的薪水最高5 -9
select * from(
select t.*,rownum rw from
(select * from teacher order by sal desc) t
)
where rw>=5 and rw<=9

  (以上內容來自王碩老師)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM