3 回答

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

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
rownum是指對(duì)你的查詢結(jié)果集進(jìn)行的編號(hào)。
<12意思就是返回前11條記錄,>8 意思是返回第9條以上的記錄,為什么這樣永遠(yuǎn)不會(huì)有返回,是因?yàn)槊看稳』氐挠涗浂际钱?dāng)作第一條,自然<8, 然后被濾掉,所以不會(huì)有返回值。
添加回答
舉報(bào)