ROWNUM 偽列的用法

2021-09-17 01:41:36 字數 954 閱讀 6692

今天給大家講的是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 ...