Oracle數據庫使用問題記錄

##Oracle數據庫使用問題記錄

  1. 關於查找第n行(n>=2)時使用rownum查不到的問題

    暫時的解決辦法是select * from (select rownum no,ename from emp) where no=2;,不過也是挺麻煩的。

    Oracle數據庫中rownum關鍵字比較特殊,是查詢結果中的一個僞字段,表示從查詢中返回的行的編號,可以用來限制查詢結果的行數(替代Mysql中常用的LIMIT關鍵字)。但是不能把它直接當成普通的一列數據來處理。比如如果想找表中第一條數據,可以用rownum=1判斷,但要想找第二條之後的就不行了,因爲在rownum做等於判斷的時候認爲1以上的自然數都是false。同樣的如果想找第二條之後的所有數據,即用rownum>2判斷,Oracle認爲這樣比較也是不合理的。所以只有想找第n條數據之前的纔可以。(看上去就像是專門爲了實現LIMIT關鍵字的作用而設立的,但是我還是不明白爲啥不直接設置個LIMIT關鍵字呢,有幸遇到高手的話還請高手指點一下,謝謝!)

    2018-3-11補充:使用ORDER BY子句時要想取前幾條數據也不能直接用rownum,還得按上面的方法迂迴取行號!!

暫時就這些問題,以後遇到其他問題再更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章