oracle的區間查詢語句:1、「select * from 表名where rownum
本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。
Oracle使⽤rownum的關鍵字來實現這種查詢:
##⾸先我們假設有⼀個地域資訊表area,其表結構如下圖所⽰: #表中的資料如下圖所⽰(select * from area語句得到的結果) :1)查詢表中的前8筆記錄
select * from area where rownum <= 8查詢結果如下: ##2)查詢第2到第8筆記錄
對於這種形式的查詢,oracle不像mysql那麼⽅便,它必須使⽤⼦查詢或是集合運算來實現。我們可以讓⽤以下3種⽅式可以實現:
A: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num between 2 and 8;
⾸先根據select id,province,city,district,rownum as num from area得到⼀個臨時表,這個臨時表中有⼀個rownum列(⼀個偽列,類似與
rowid,但⼜不同於rowid,因為rowid是物理存在的⼀個列,也就是說Oracle中任何⼀個表都有⼀個rowid列,⽽ rownum不是物理存在的),
然後在臨時表中來查詢。
B: select * from area where rownum <= 8 minus select * from area where rownum < 2;
使⽤集合減運算子minus,該操作傳回在第⼀個select中出現⽽不在第⼆個select中出現的記錄。
C: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num >=2 intersect
select * from area where rownum
#使⽤集合交運算子intersect,這⾥繞了⼀個彎(不過這個彎實現了rownum⼤於某個數的查詢),它是⾸先利⽤A的⽅式查詢得到所有
rownum⼤於2的記錄,然後再與rownum⼩於等於8的記錄集合做交運算。三種操作得到的結果⼀樣,如下圖所⽰:
#推薦教學:《
Oracle影片教學以上是oracle的區間查詢語句是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!