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
沒有留言:
張貼留言