我现在遇到这么个棘手的问题,就是在如下的Oracle表中:
A B
1 未知 2
2 未知 2
3 未知 2我现在要把这三条记录的A字段分别修改为:abc,def,ghi
现在遇到的问题是我不知道A字段的值,我只知道要将B字段值为2的三条数据的A字段分别更新为abc,def,ghi
我该怎么写SQL语句?才能使得:
A B
1 abc 2
2 def 2
3 ghi 2
A B
1 未知 2
2 未知 2
3 未知 2我现在要把这三条记录的A字段分别修改为:abc,def,ghi
现在遇到的问题是我不知道A字段的值,我只知道要将B字段值为2的三条数据的A字段分别更新为abc,def,ghi
我该怎么写SQL语句?才能使得:
A B
1 abc 2
2 def 2
3 ghi 2
解决方案 »
- -- 写一个创建相关表的SELECT 语句(排除指定字段)的代码给那些懒鬼们 --
- vs2010是否支持oracle数据库?
- 删除用户报03113错误
- [Oracle DBLink 调用 远程Procedure,该Procedure的参数为数组类型,我该怎么办]
- 如何写以下的一条sql语句
- 求救,有关oracle连接sql server
- 根据数据字典生成创表语法
- 唉!!怎么就安装不上oracle呢!!
- 如何在过程中调用操作系统命令
- godblessu(上帝保佑)接分,今天这个网站不知道怎么了,贼慢
- php5编译with-oci8重启apache出错
- 能否把以前拷贝出来的表空间挂到Oracle中继续使用
UPDATE TABLE
SET A=ghi
where b=2 and rownum<=3;update table
set a=def
where b=2 and rownum<=2update table
set a=abc
where b=2 and rownum<=1
对楼主的描述,我的理解是A字段被加密了,或者乱码了
是不是这样?要不然select一下不就知道了另外我建议用rowid来更新,rowid是一个固定值,不会变的
UPDATE TABLE
SET A=decode(rownum,1,'abc',2,'def',3,'ghi',A)
where b=2;
然后再根据rowid 列的值去修改,rowid是该条记录的物理地址,具有唯一性
UPDATE TABLE
SET A = DECODE(ROWNUM, 1, 'abc', 2, 'def', 3, 'ghi', A)
WHERE B = 2;
恩,这个不错。也好理解。
这个用法学习了 不知道在update中rownum会自动因条件不同会变化