oracle分頁查詢語句的方法「oracle分頁查詢語句第幾頁」

對於rownum來說它是oracle系統順序分配為從查詢返回的行的編號,返回的第一行分配的是1,第二行是2,依此類推,這個偽欄位可以用於限制查詢返回的總行數,且rownum不能以任何錶的名稱作為前綴。

(1) rownum 對於等於某值的查詢條件

如果希望找到學生表中第一條學生的信息,可以使用rownum=1作為條件。但是想找到學生表中第二條學生的信息,使用rownum=2結果查不到數據。因為rownum都是從1開始,但是1以上的自然數在rownum做等於判斷是時認為都是false條件,所以無法查到rownum = n(n>1的自然數)。

SQL> select rownum,id,name from student where rownum=1;(可以用在限制返回記錄條數的地方,保證不出錯,如:隱式游標)

SQL> select rownum,id,name from student where rownum =2;

ROWNUM ID NAME

———- —— —————————————————

(2)rownum對於大於某值的查詢條件

如果想找到從第二行記錄以後的記錄,當使用rownum>2是查不出記錄的,原因是由於rownum是一個總是從1開始的偽列,Oracle 認為rownum> n(n>1的自然數)這種條件依舊不成立,所以查不到記錄。

查找到第二行以後的記錄可使用以下的子查詢方法來解決。注意子查詢中的rownum必須要有別名,否則還是不會查出記錄來,這是因為rownum不是某個表的列,如果不起別名的話,無法知道rownum是子查詢的列還是主查詢的列。

SQL>select * from(select rownum no ,id,name from student) where no>2;

NO ID NAME

———- —— —————————————————

3 200003 李三

4 200004 趙四

(3)rownum對於小於某值的查詢條件

rownum對於rownum<n((n>1的自然數)的條件認為是成立的,所以可以找到記錄。

SQL> select rownum,id,name from student where rownum <3;

ROWNUM ID NAME

———- —— —————————————————

1 200001 張一

2 200002 王二

查詢rownum在某區間的數據,必須使用子查詢。例如要查詢rownum在第二行到第三行之間的數據,包括第二行和第三行數據,那麼我們只能寫以下語句,先讓它返回小於等於三的記錄行,然後在主查詢中判斷新的rownum的別名列大於等於二的記錄行。但是這樣的操作會在大數據集中影響速度。

SQL> select * from (select rownum no,id,name from student where rownum<=3 ) where no >=2;

NO ID NAME

———- —— —————————————————

2 200002 王二

3 200003 李三

(4)rownum和排序

Oracle中的rownum的是在取數據的時候產生的序號,所以想對指定排序的數據去指定的rowmun行數據就必須注意了。

SQL> select rownum ,id,name from student order by name;

ROWNUM ID NAME

———- —— —————————————————

3 200003 李三

2 200002 王二

1 200001 張一

4 200004 趙四

可以看出,rownum並不是按照name列來生成的序號。系統是按照記錄插入時的順序給記錄排的號,rowid也是順序分配的。為了解決這個問題,必須使用子查詢;

SQL> select rownum ,id,name from (select * from student order by name);

ROWNUM ID NAME

———- —— —————————————————

1 200003 李三

2 200002 王二

3 200001 張一

4 200004 趙四

這樣就成了按name排序,並且用rownum標出正確序號(有小到大)

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/209143.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 15:25
下一篇 2024-12-08 15:25

相關推薦

發表回復

登錄後才能評論