根据B表更新A表 oracle
基本意思就是要实现如果A.字段2=B.字段2那么就将B.id更新到A.字段2中单条数据倒是听好弄本人也会但是一牵扯循环更新就头大了。还请各位路过的高仙支支招吧...
基本意思就是要实现如果 A.字段2=B.字段2 那么就将B.id 更新到A.字段2 中单条数据倒是听好弄 本人也会但是一牵扯循环更新就头大了。还请各位路过的高仙支支招吧
展开
展开全部
update A
set A.字段2 = (select B.id from B where A.字段2 = B.字段2)
where exists (select 1 from B where B.字段2 = A.字段2);
-- 如果B表字段2有重复,那么会报错:单条语句返回多行。此时用下面语句:
update A
set A.字段2 = (select B.id from B where A.字段2 = B.字段2 and rownum=1)
where exists (select 1 from B where B.字段2 = A.字段2);
--HaiziCattle的答案也是对的
--badkano显然没看清题目
展开全部
update a set 字段2= (select min(id) from b where b.字段2= a.字段2 )
where exists (select * from b where b.字段2= a.字段2 )
where exists (select * from b where b.字段2= a.字段2 )
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update A set A.字段2=(select B.字段2 from B where A.id=B.id) where A.id in (select id from B);
commit;
修改前最好备份一下A表
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询