1. 程式人生 > >oracle中常用的兩個偽列

oracle中常用的兩個偽列

偽列

  偽列就行oracle中的一個列表,但世界上它並未儲存在表中,偽列可以被查詢但是不能被插入或者更改.

rowID

  該偽列返回該行地址,可以使用rowID值來定位表中的一行.通常rowID值可以標識資料庫中的一行

rowID偽列有以下重用用途

  • 能以最快的方式訪問表中的一行
  • 能顯示錶中行是如何儲存的
  • 可以作為表中行的唯一標識

可以直接檢視rowID的值如下

select t.*, t.rowid from EMP t

rownum

  此偽列用於返回一個數值代表行的次序.返回的第一行的rownum值為1,下一個為2,一次類推.通過使用它可以限制使用者查詢返回的行數

select t.*, rownum from EMP t where rownum<4

 注意:oracle認為rownum>N(也就是rownum>1)這種條件不成立,所以查不到記錄

因為是偽列是根據查詢出來的資料進行分配的,第一筆資料永遠是1,第二筆也永遠是2.當過濾了第一筆那麼第二筆就成了第一筆,

所以查不到資料

如下例子

select t.*, rownum from EMP t where comm>0

不加條件前

 

加了條件後

因此row是根據結果進行分配的,如有錯誤歡迎各位評論指正