ORACLE中ROWNUM
阿新 • • 發佈:2021-12-21
一、rownum
1、rownum是對結果集新增的一個偽列;
2、是先按某種條件查詢出結果集之後又新增上的一個列;
3、它總是從1開始,因此在使用的過程中需要謹慎使用>,>=,=,between...and這些條件。
eg:
如下語句,執行此條語句你會發現就算表中有資料,查出的結果集也是空,是因為當取出第一條資料,此時ROWNUM = 1,不滿足ROWNUM > 10的條件,一次捨去,再取出下一條資料此時ROWNUM還會被賦值為1,依次類推,取到最後也還是沒有。
SELECT ROWNUM,t.ownername FROM SYS_USER t
WHERE ROWNUM >10
二、說明
1、ROWNUM 和 ROWID雖都被稱為偽列,但它們的存在方式是不一樣的,rowid 可以說是物理存在的,表示記錄在表空間中的唯一位置ID,在DB中唯一。只要記錄沒被搬動過,rowid是不變的。rowid 相對於表來說又像表中的一般列,所以以 rowid 為條件就不會有 rownum那些情況發生。
2、另外還要注意:rownum不能以任何基表的名稱作為字首
本文來自部落格園,作者:楠楠之歌,轉載請註明原文連結:https://www.cnblogs.com/htblog/p/15716564.html