批量更新。A B 表 从表B 找不等于 A 的数据 并更新 A的数据=B的数据 A(a1,a2,a3) B(b1,b2,b3) 表 从表B 找不等于 A 的数据 并更新 因为有其它字段,所以不可以删除再插入的。
解决方案 »
- 关于Oracle SQL语句插入数据操作 (三元运算符)
- Oracle备份的问题
- ORACLE 中查询某个表中某条记录的修改记录方法如下:
- 关于一下sql语句的逻辑问题
- oracle中如何将某时间转换为给定时区对应的时间?
- 请问在windows中安装在非系统区的oracle 9i,在系统重装后,是否不用再重新安装oracle就能正常使用?
- 为什么OracleOraHome81ManagementServer没有自动启动?
- 数据库导入批处理
- 谁有ORACLE DEVELOP6.0 的入门资料谢谢
- ◆现在大家都使用什么测试管理软件?◆
- 把excel或txt或access 导入oracle的问题。无目的表,如何在导入oracle时按原来表名自动创建表 并导入数据。
- 如何将clob字段改为varchar2
B(b1,b2,b3) b1主键如果A.a1=B.b1, 并且A.a2<>B.b2, A.a3<>b.b3
更新A.a2=B.b2, A.a3=b.b3这下应该说明白了吧
, a3=(select b3 from B where b2<>A.a2 and b3<>A.a3 and b1=A.a1)
where exist (select * from B where b2<>A.a2 and b3<>A.a3 and b1=A.a1)
update A set a2=(select b2 from B where b2 <>A.a2 and b3 <>A.a3 and b1=A.a1)
, a3=(select b3 from B where b2 <>A.a2 and b3 <>A.a3 and b1=A.a1)
where exist (select * from B where b2 <>A.a2 and b3 <>A.a3 and b1=A.a1)当A.a2 <>B.b2, A.a3 <>b.b3 至少满足一条时更新
update A set a2=(select b2 from B where (b2 <>A.a2 or b3 <>A.a3) and b1=A.a1)
, a3=(select b3 from B where (b2 <>A.a2 or b3 <>A.a3) and b1=A.a1)
where exist (select * from B where (b2 <>A.a2 or b3 <>A.a3) and b1=A.a1)
set a2 = (select b2
from b
where a.a1 = b.b1
and a.a2 <> b.b2
and a.a3 <> b.b3),
a3 = (select b3
from b
where a.a1 = b.b1
and a.a2 <> b.b2
and a.a3 <> b.b3)