问题:在oracle数据库中取出中间某些行的SQL语法! 我用了如下的语法:select * from tablename where rownum>=10 and rownum<20 order by colname;结果无法取出第10条到19条记录。请问该如何写SQL才正确呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from tablename where rownum<20 minusselect * from tablename where rownum<11 ; 但好象加了order by条件后无效啊。 select * from(select * from tablename where rownum<20 minusselect * from tablename where rownum<10)order by colname; http://expert.csdn.net/Expert/topic/2566/2566792.xml?temp=.4474451 select * from ( select t1.*, rownum rnum from (select * from tablename order by colname) t1 where rownum <=19 ) where rnum >= 10 谢谢,终于搞定了。不过oracle确实可以针对这种需求给出一种更简单的解决办法。否则一个简单的SQL逻辑,被弄得长篇大论,片面地复杂化了。 不过我后来试验了 leecooper0918 的做法,并没有成功。 不可能吧? 我说的那种方法是效率比较高的,至少比MINUS的效率高。 参考: http://expert.csdn.net/Expert/topic/2507/2507539.xml?temp=.9630243 oracle 10g 不能登陆了 求oracle存储过程报错“读取违反顺序”解决办法 请教数据库专家:我想深入学习数据库,数据库相关的东西包含那些 ? 向多个oracle数据库插入数据,系统出错时没有全部回滚。 数据库链接未处于活动状态 大哥大姐,请教这样的问题,sum语句求和,分不多了,全在这,谢谢各位 如何做个dba 又一个错误。8I和9I有这样的区别吗?程序错误!高手指点。 急!请教在IBM RS6000数据库是oracle 8.0.6的备份! 无监听程序 备份与恢复oracle数据库的方法与步骤? 问一下关于Clob的问题,20分奉送别嫌少!
minus
select * from tablename where rownum<11 ;
select * from tablename where rownum<20
minus
select * from tablename where rownum<10
)order by colname;
(
select t1.*, rownum rnum
from (select * from tablename order by colname) t1
where rownum <=19
) where rnum >= 10
我说的那种方法是效率比较高的,至少比MINUS的效率高。
http://expert.csdn.net/Expert/topic/2507/2507539.xml?temp=.9630243