2008年12月31日 星期三

[Oracle] 使用rownum選擇列

Oracle在使用rownum select資料時

select rownum from orderTable where rownum between 100 and 200 ;

不會有資料出現,因為rownum 在select出結果的時候才會產生,有點像增加一個臨時的欄位,從1開始; between 100 and 200還沒有結果,所以不會出現資料!!

可以用下面的方法解決:

select * from orderTable where rownum <=200 minus (select * from orderTable where rownum <=100);

或是使用ROW_NUMBER函數

SELECT NO, NAME FROM (

SELECT NO, NAME, ROW_NUMBER() OVER (ORDER BY NO) RNUM

FROM ROWNUM_TEST ) WHERE RNUM BETWEEN 5 AND 10

沒有留言: