首页 > 数据库 > Oracle > Oracle ROWNUM
ROWNUM和ROWID一樣也是一個偽列,按ORACLE從buffer cache或data file中的順序開始計數的。
ROWNUM=1也就是讀到的第一條,當這條記錄被刪除ROWNUM將變為其它值。
在謂詞中不允許使用ROWNUM=2,3。。。等(oracle是從rownum=1開始計數的,直接使用rownum=2不行)
如果非要取第2條可以用:
SELECT * FROM (SELECT A.*,ROWNUM R FROM EMP A)
WHERE R=2;
開發中常用到rownum=1,以提高執行效率(找到第一條就馬上返回結果,不用向下執行)。
其實在oracle10G開始執行計畫才會這樣執行,提高效率
ORDER BY排序時,注意寫成:
SELECT * FROM (SELECT A.*,ROWNUM R FROM EMP A
ORDER BY EMP_NO)
WHERE R=1;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25583515/viewspace-2147284/ ,如需转载,请注明出处,否则将追究法律责任。