ORACLE、DB2中rownum的使用


假設TABLE名為t,PRIMARY KEY為id,則:
1-5000000

SELECT t.*
FROM t , (SELECT id, ROW_NUMBER() OVER( ORDER BY id )  AS num FROM t) as t1
WHERE t.id = t1.id  AND t1.num <50000001

50000001 - 100000000

SELECT t.*
FROM t , (SELECT id, ROW_NUMBER() OVER( ORDER BY id )  AS num FROM t) as t1
WHERE t.id = t1.id  AND t1.num BETWEEN 50000001 AND 100000000

以此類推...

 

到於ORACLE,由於偽列rownum總是從1開始計數,所以當rownum 取>1的值時無效,如select * from xxx where rownum = 2,得不到結果。

可使用子查詢的方式:select c.* from (select *, rownum as no from xxx) c where c.no = 2來得到結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM