ROWNUM是不能这么用的,而且这么做对数据不安全,你根本无法控制更新那一条纪录。
解决方案 »
- sql2000中如何将varchar类型的列转换成float类型!
- 求一sql语句
- 微软虚拟机在拔掉网线的情况下,如何与宿主物理主机组成局域网。我想在拔掉物理机器上的网线后(即不与外界任何机器、网络、internet连网),在同一台机器上实现虚拟机访问物理主机上的数据库,以调试程序之用。如何解决?
- 求一个sql语句,是关于一字段下内容到另一字段内容的复制
- 关于sql中的Sum函数
- 数据库应用程序打包发布后的问题
- MS SQL SERVER 中文聯機幫助
- 如何把数据库中的一张表倒出为excel格式?
- 未与信任 SQL Server 连接相关联
- 征求一条SQL语句
- 郁闷,我的sql server 装不上去。。。。大虾们快来帮一把啊
- Sql高手请进,怎样用一条语句完成以下任务。
可以用select * from mytable where rownum<4去记录的前三行吧?为什么我上面的用法就不行,区别究竟在哪呢?
这样是可以的:
select * from mytable where rownum<4
这样就错了:
select * from mytable where rownum>4
没有rownum=1是不会有rownum=2的。
如果你写了WHERE子句屏蔽了一部分纪录,那么查询结果的rownum会发生相应变化。
这么说你理解了吗?-------------------------------------------------
地狱天堂,皆在人间!
http://www.chinajavaworld.com
rownum只是记录的一个序号,其意是第一条记录的rownum为1,第二条为2……依次……
其依查询条件变化而变化
而记录的rowid却是不变化的,一条记录自insert之后,其rowid已经固定下来
update EMP2 set JOB='analyst'where rowid=2,
为什么说数据类型不一致?
如前所述,rowid=2是行不通的。
rownum顾名思义,行数。是一个从1开始某个范围,如9Thoughts(一片绿洲) 所说。rowid存储记录的标识。在整个数据库内,某条记录的唯一标识。看下面例子,就明白了:MSJ>select rowid,rownum,a1,a2 from a;ROWID ROWNUM A1 A2
------------------ --------- --------- ------
AAABE9AACAAAAeXAAA 1 2 lixuef
AAABE9AACAAAAeXAAB 2 1 mashan
1 update a
2 set a2='lxf'
3* where rowid='AAABE9AACAAAAeXAAA'
MSJ>/1 row updated.MSJ>select * from a; A1 A2
--------- ------
2 lxf
1 mashan