select * from (select t.*,rownum from MBAA01_OW_OWNER t WHERE 1=1 )
where rownum > 0 AND rownum <= 5
select * from (select t.*,rownum from MBAA01_OW_OWNER t WHERE 1=1 )
where rownum > 5 AND rownum <= 10
上一个查询语句可以,下一个为什么不行
------解决思路----------------------
内层的rownum要起个别名
否则外层的取的还是自身的伪列,此时没有rownum=1的记录,自然不会有2 3 4 5....
------解决思路----------------------
还需要再嵌一层子查询吧
------解决思路----------------------
rownum是针对本层查询的一个伪列,排序用的。只能从1开始,不能从2或者以上开始。
------解决思路----------------------
where rownum > 5 AND rownum <= 10
这里的 rownum 是外层的 rownum ,并非子查询的。子查询的,来个别名。
------解决思路----------------------
你不制定具体的表名,ROWNUM是子查询的伪表做处理的
第一句的查询条件相当于 rownum <= 5
第二句的查询中的ROWNUM>5,数据库是无法计算出来的,针对当前表的伪列ROWNUM,数据库
只能计算出<=具体数字 或等价的 >0 and <=
若是想实现第二中情况,可以在子查询中具体指定ROWNUM伪列的别名
------解决思路----------------------
--
select * from (select rownum num,t.* from MBAA01_OW_OWNER? t WHERE 1=1 )
where rownum > 0 AND rownum <= 5
--指定伪列别名
select * from (select rownum num,t.* from MBAA01_OW_OWNER? t WHERE 1=1 )
where num > 5 AND num <= 10