社区
基础和管理
帖子详情
请教rownum问题,为何不支持>,>=,=,between...and
jayli426
2006-07-04 10:49:11
对应rownum问题,资料都说不支持>,>=,=,between...and
只能用以上符号(<、<=、!=)。
一直没明白为什么,哪位大虾能解释一下吗??
select * from tablename where rownum != 10
为何是返回前9条数据呢??
其实
select * from tablename where rownum < 10
效果是一致的阿
...全文
472
13
打赏
收藏
请教rownum问题,为何不支持>,>=,=,between...and
对应rownum问题,资料都说不支持>,>=,=,between...and 只能用以上符号(<、<=、!=)。 一直没明白为什么,哪位大虾能解释一下吗?? select * from tablename where rownum != 10 为何是返回前9条数据呢?? 其实 select * from tablename where rownum < 10 效果是一致的阿
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
buoll
2006-08-16
打赏
举报
回复
嗯。
如果要用大于的可以这样做:
select * from (select s.*, rownum row_id from table s where rownum<1000001) where row_id>999990;
yqx123
2006-08-16
打赏
举报
回复
今天豁然开朗了。呵呵,学习
认真读书
2006-08-15
打赏
举报
回复
正解。。。
gw_delphi
2006-08-14
打赏
举报
回复
rownum是伪列,代表已经查询到的记录的行序号。还未查到的记录是没有rownum的。
因此ROWNUM>=1 AND ROWNUM<=10是可以查到前10条记录但是不能证明
ROWNUM>=500 AND ROWNUM<=600可以查处500~600的501条记录。
ROWNUM>=1 AND ROWNUM<=10在逻辑上相当于ROWNUM<=10
springzct
2006-08-14
打赏
举报
回复
up
yz_oracle
2006-07-05
打赏
举报
回复
支持zhouguoling(zhou)的说法
loveyt
2006-07-04
打赏
举报
回复
支持>=的啊...
select * from emp where rownum>=1 and rownum<10
............
yl_muchyong
2006-07-04
打赏
举报
回复
我想你是要在where条件中用吧,哪是不能用的
因为rownum是在查到结果之后再加的列,
已就是要先有结果集,所以不能用的
超叔csdn
2006-07-04
打赏
举报
回复
因为ROWNUM是对结果集加的一个伪列。
比如:结果集为:
a
b
c
d
e
f
g
你的ROWNUM如果是<>4则加了
1 a
2 b
3 c
后,d的rownum为4,则去掉。
去掉后e的rownum为4,则去掉。
。。。
如此下去,就只剩前3个了。
这也就是为什么rownum>=2没有记录了,因为第一条不满足去掉的话,第二条的ROWNUM又成了1,所以永远没有满足条件的记录。
david_xu322
2006-07-04
打赏
举报
回复
楼上正解!
电力信息系统
2006-07-04
打赏
举报
回复
ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。
它取得第一条记录则rownum值为1,第二条为2,依次类推。如果你用>,>=,=,between...and这些条件,因为从缓冲区或数据文件中得到的第一条记录的rownum为1,则被删除,接着取下条,可是它的rownum还是1,又被删除,依次类推,便没有了数据。
yqwd911
2006-07-04
打赏
举报
回复
sbaz(万神渡劫)正确的解释。
简单的说rownum是对符合条件结果的序列号。一定是从1开始排起的。
所以你选出的结果不可能没有1,而有其他大于1的值。
所以如果想要这个结果的话要用嵌套语句,把rownum先生成,然后对他进行查询。
select *
from(selet rownum rn,a.* from a where ...)
where rn>=10
超叔csdn
2006-07-04
打赏
举报
回复
>=1就是=1,大于号没起到任何作用。
oracle入门到大神(备mysql、java基础、javaee必经之路)
Oracle10g的安装、orcale的基本概念介绍、命令行常用操作、Scott用户下的表结构介绍、sql简介、简单查询、限定查询、对结果集排序、单行函数、多表查询、子查询、数据库变更、事务处理、表的管理、约束、
row
num
、...
[oracle]为什么Oracle的伪列
row
num
不
支持
>,>=,=,between...and,而都用<比较
对于 Oracle 的
row
num
问题
,很多资料都说不
支持
>,>=,=,between...and,只能用以上符号(=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个
row
num
伪列的意义就不应该感到惊奇,同样是伪列,
row
num
与
row
id 可有些不一样,下面以例子说明 假设某个表 t1(...
还算深度解析ORACLE
ROW
NUM
关于Oracle的
row
num
大家并不陌生,很多人说是一个查询出结果后的伪列,是从1开始的,使用
row
num
过滤时必须从1开始等。
row
num
是怎样一个伪列,我们一会讨论;
row
num
是从1开始的,但是既然是伪列,为什么必须从1开始,下面我们一点点剖析。 本此博客主要讨论以下几个
问题
①,
row
num
是什么及简要算法; ②,因为
row
num
,执行计划中COUNT STOPKEY是怎么回...
oracle笔记(2010-1-30)
select UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(BLOBField)) from TableName; 出处:http://zhouwf0726.itpub.net/post/9689/158090 oracle分析函数 ========================================================...
数据库select经典题目
null不能用==或者!=比较 ,必须用 is null 或者is not null
row
num
返回当前行号
row
id是一个伪列,一般情况用不到,但是当需要具体锁定某一行时,它非常有用,因为它的值绝对不会重复,
row
id 类似于hashcode 定位列在内存中的数据。 between and 是>= , 效率低,用的少,一般是直接>= in的效率比较低 推荐
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章