看下面sql语句,我想用 rw 来实现从n-m的截取
select * from(select times,pages,rownum rw from layouts) where times='20090105' order by pages asc;结果是:
times pages rw
20090105 A001 96
20090105 A002 97
20090105 A003 98
.
.为什么rw不是从1开始的?以至于我在where后面用 rw>=10 and rw<=20的时候没有值
select * from(select times,pages,rownum rw from layouts) where times='20090105' order by pages asc;结果是:
times pages rw
20090105 A001 96
20090105 A002 97
20090105 A003 98
.
.为什么rw不是从1开始的?以至于我在where后面用 rw>=10 and rw<=20的时候没有值
1、“为什么rw不是从1开始的?”
select times,pages,rownum rw from layouts
出来的结果集一定是
times pages rw
XXXXXXXX XXXX 1
XXXXXXXX XXXX 2
XXXXXXXX XXXX 3
...
20090105 A001 96
20090105 A002 97
20090105 A003 98
...然后你再times='20090105',结果集里面rw当然只有是满足条件的结果了。2、“以至于我在where后面用 rw>=10 and rw<=20的时候没有值”
这个修改一下,将times='20090105'放到子查询中就可以了。
select * from(select times,pages,rownum rw from layouts where times='20090105') 希望对你有所帮助
where times='20090105' 说明满足你条件的记录是从95开始的
select * from(select times,pages,rownum rw from layouts where times='20090105' order by pages asc) where rw>=10 and rw<=20
此例在Oracle中测试通过
同意这哥们说的,而且后面的times='20090105' 也会影响查询结果的。