分頁查詢中,需要用到偽列rownum,**如下:
select * from (select rownum rn, name from cost where rownum <= 6) where rn >3;
可是第一次用rownum,第二次用rn,位置不能變,否則出錯,第一次的rownum是oracle中的乙個虛擬列,
rn是給這個rownum起的別名,也就是在子查詢中的別名要在外查詢中呼叫。需要注意一下,就是rownum是取出乙個再編號,
所以在裡面我們可以寫《或者<=,而不能寫成》或者》=,因為取出乙個才編號,要想取出大於3的,就必須先取出1,2,3的,因為按順序編號。
如果先按工資排序,再取出6到10號,可以寫成:
select * from (select rownum rn, t.* from (select * from cost order by sal desc) t where rownum < 11) where rn >= 6;
同樣注意什麼時候用rownum,什麼時候用rn.
這樣寫是不被允許的:
select rownum rn from cost where rn = 1;
要寫成:
select rownum rn from cost where rownum = 1;
ORACLE中的偽列
oracle 中的偽列 偽列就像表中的列一樣,但是在表中並不儲存。偽列只能查詢。不能進行增刪改工作。rownum與rowid不同,rowid是插入記錄時生成,rownum是查詢資料時生成。rowid標識的是行的實體地址。rownum標識的是查詢結果中的行的次序。1.rowid 表中的每一行記錄都有乙...
Oracle中的偽列
分頁查詢中,需要用到偽列rownum,如下 select from select rownum rn,name from cost where rownum 6 where rn 3 可是第一次用rownum,第二次用rn,位置不能變,否則出錯,第一次的rownum是oracle中的乙個虛擬列,rn...
oracle中的偽列rownum
對於 oracle 的 rownum 問題,很多資料都說不支援 between.and,只能用以上符號 並非說用 between.and 時會提示sql語法錯誤,而是經常是查不出一條記錄來,還會出現似乎是莫名其妙的結果來,其實您只要理解好了這個 rownum 偽列的意義就不應該感到驚奇,同樣是偽列,...