今天給大家講的是rownum 偽列的用法,偽列是什麼?顧名思義就是新增乙個假的列用來裝查詢出的內容新增序列號。偽列可以用在那些方面上呢?我們來看一下。例子1:
查詢出學生表中的學生成績按公升序排列後10 – 20 的學生資訊。看到這題的時候,相信大家都會想到用過濾語句,用過濾語句來查出資訊,當時的我也是這樣,直到後來老師講了rownum語句,我才知它的真正作用。
先看答案:
select * from(select rownum r,e.* from
(select degree
from score
order by degree desc)e)where r<=20 and r>=10
先把成績查出來,用order by 語句來公升序,寫好之後,再寫rownum的偽列,然後把成績括起來,外面再寫乙個大查詢包裹起來,之後寫上where語句查出10 – 20的資訊就行了。(注意:直接使用rownum的話,where後面的rownum只能用小於或小於等於來查詢,不能用大於或大於等於來查詢,會查不出來,所以著道題是用『r』來查出10-20的學生資訊)
看到這題的時候,是不是想到用子查詢,其實它還可以用到偽列的,一開始我不相信,後來看了一下老師答案,才理解了含義。
我是這麼理解的,先查詢出學生號和課程,在用成績來排序,外面在加上大的查詢包裹學生號和課程,寫完之後加上where rownum=1語句來查出排在第一的學生號和課程。
看完之後,發現 『rownum』不僅僅可以用在查詢排名第幾和第幾,還可以獲取排在第一的內容,真是受用!
Oracle的資料偽列 ROWNUM
資料庫 oracle11g 資料偽列 rownum 範例 查詢前5條記錄 select rownum,empno,job,hiredate,sal from emp where rownum 5 範例 查詢 6 10 條記錄 按照正常的思維肯定直接進行between and的判斷 如 select ...
oracle中的偽列rownum
對於 oracle 的 rownum 問題,很多資料都說不支援 between.and,只能用以上符號 並非說用 between.and 時會提示sql語法錯誤,而是經常是查不出一條記錄來,還會出現似乎是莫名其妙的結果來,其實您只要理解好了這個 rownum 偽列的意義就不應該感到驚奇,同樣是偽列,...
Oracle的資料偽列 ROWNUM
資料庫 oracle11g 資料偽列 rownum 範例 查詢前5條記錄 select rownum,empno,job,hiredate,sal from emp where rownum 5 範例 查詢 6 10 條記錄 按照正常的思維肯定直接進行between and的判斷 如 select ...