日期:2014-05-17  浏览次数:20769 次

ORACLE中关于如何读取第N行到第M行的问题怎么解决
rt   ,   n <m   并且m,n> 1

------解决方案--------------------
大于1小于10的记录

select * from
(select tab.*,rownum rn from tab where rownum <=10) where rn> 1
------解决方案--------------------
select * from tab where rownum> 1 and rownum <=10
------解决方案--------------------
楼上的 你写的语句有结果吗?
------解决方案--------------------
rownum 只能用来限定《=某个值,不能用来》=某个值,因为rownum是一个伪列,并且从1开始,好比空中楼台。
------解决方案--------------------
ROWNUM,你只能从第1行的记录开始使用她,比如:select * from test where rownum <=10出来的是物理位置从1-10行的记录;select * from tset where rownum> 10 and rownum <=20,出来的就不会是11-20的记录了。
------解决方案--------------------
select * from tab where rownum <M
minus
select * from tab where rownum <N
------解决方案--------------------
row_number() over(order by XX) as rownum

然后取条件范围的记录
------解决方案--------------------
SELECT * FROM (SELECT es.*,To_Number(id) t FROM ESSEARCHDATA es
WHERE TO_NUMBER(ID) <= ? * ? )
WHERE t > (? - 1) * ?
ORDER BY TO_NUMBER(ID) asc