Oracle分页查询问题。rownum问题。 本帖最后由 w091b 于 2012-12-20 16:28:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ROWNUM只适用于小于或小于等于,如果进行等于判断,那么只能等于1,不能进行大于的比较。ROWNUM的返回很简单,ROWNUM总是从1开始,不管当前的记录是否满足查询结果,ROWNUM返回的值都是1,如果这条记录的值最终满足所有的条件,那么ROWNUM会递加,下一条记录的ROWNUM会返回2,否则下一条记录的ROWNUM仍然返回1。理解了这一点,就清楚为什么一般的ROWNUM大于某个值或等于某个不为1的值是无法返回结果的,因此对于每条记录的ROWNUM都是1,而ROWNUM为1不满足查询的结果,所以下一条记录的ROWNUM不会递增,仍然是1,因此所有的记录都不满足条件。 rownum 不是 my_table 中的字段, 可以理解为一个递增的常量。这样的话,在where 中时取不到rownum 的值的select * from ( select my_table.*,rownum my_rownum from ( select student_id,NAME from student union select student_id,cno from sc )my_table where rownum<21 )where my_rownum>10 这种写法是间接的把rownum 变成子查询中的一个字段,所以你可以查出来数据 那那个my_rownum是什么,其什么作用啊,欢迎积极回答啊,圣诞快乐! 额....rownum my_rownum , 是 rownum 别名.. 间接的变成了子查询的一个字段.. 初学者,请多多指教!别名我懂,但是为什么这么用?为什么别名之后就可以用大于号啊,一楼大哥说的:(ROWNUM只适用于小于或小于等于,如果进行等于判断,那么只能等于1,不能进行大于的比较。) rownum取一个别名 再嵌套一层 rownumb值从1开始,简单的可以理解,有1,才会有2,依次类推。所以rounum>=1 ,rounum=1,rownum<=n 都可以返回出数据而oracle使用rownum分组是利用这个序号将其实例化,如楼主提到的蓝色字体:rownum my_rownum 这样根据排序字段确定的my_rownum就是固定值,从而可以任意取范围了。 Oracle数据的分区理论问题 关于oracle数据库转移。。 ORA-00376: file 7 cannot be read at this time ;help!求救! 学学oracle ,java。 准备配台电脑,主机预算4300以下,麻烦各位推荐一下配置,谢谢 sql server爱好者-------oracle初学者问题,来者有分 关于定时清理共享区的空间 为什么Oracle书上的SQL都没有schema? 出現ORA-20000的錯誤,我應該怎麼辦? 下在资料帮助 图形界面解决oracle新建和连接数据库 创建表的storage的问题 一个简单触发器报错
ROWNUM的返回很简单,ROWNUM总是从1开始,不管当前的记录是否满足查询结果,ROWNUM返回的值都是1,如果这条记录的值最终满足所有的条件,那么ROWNUM会递加,下一条记录的ROWNUM会返回2,否则下一条记录的ROWNUM仍然返回1。
理解了这一点,就清楚为什么一般的ROWNUM大于某个值或等于某个不为1的值是无法返回结果的,因此对于每条记录的ROWNUM都是1,而ROWNUM为1不满足查询的结果,所以下一条记录的ROWNUM不会递增,仍然是1,因此所有的记录都不满足条件。
这样的话,在where 中时取不到rownum 的值的
select * from
(
select my_table.*,rownum my_rownum from
(
select student_id,NAME from student
union
select student_id,cno from sc
)my_table where rownum<21
)where my_rownum>10 这种写法是间接的把rownum 变成子查询中的一个字段,所以你可以查出来数据
那那个my_rownum是什么,其什么作用啊,欢迎积极回答啊,圣诞快乐!
所以rounum>=1 ,rounum=1,rownum<=n 都可以返回出数据而oracle使用rownum分组是利用这个序号将其实例化,如楼主提到的蓝色字体:
rownum my_rownum 这样根据排序字段确定的my_rownum就是固定值,从而可以任意取范围了。