3 回答

TA貢獻1887條經(jīng)驗 獲得超5個贊
大于不是這么用的,如果想找到從第二行記錄以后的記錄,當使用rownum>8是查不出記錄的,原因是由于rownum是一個總是從1開始的偽列,Oracle 認為rownum> n(n>1的自然數(shù))這種條件依舊不成立,所以查不到記錄
SQL> select rownum,id,name from abc where rownum >8;
ROWNUM ID NAME
---------- ------ ---------------------------------------------------
可以使用以下的子查詢方法來解決。注意子查詢中的rownum必須要有別名,否則還是不會查出記錄來,這是因為rownum不是某個表的列,如果不起別名的話,無法知道rownum是子查詢的列還是主查詢的列。
SQL>select * from(select rownum no ,id,name from abc) a where no>8;-- 除了rownum其他隨意寫的

TA貢獻1802條經(jīng)驗 獲得超4個贊
rownum是指對你的查詢結(jié)果集進行的編號。
<12意思就是返回前11條記錄,>8 意思是返回第9條以上的記錄,為什么這樣永遠不會有返回,是因為每次取回的記錄都是當作第一條,自然<8, 然后被濾掉,所以不會有返回值。
添加回答
舉報