Oracle多表更新问题

Oracle多表更新问题表A有a1a2a3a4a5字段,表B有b1b2b3b6四个字段,现在想实现的是当a1=b1并且a2=b2a3=b3的时候将表B的b6更新到表A的a... Oracle多表更新问题表A有 a1 a2 a3 a4 a5 字段,表B有 b1 b2 b3 b6 四个字段,现在想实现的是 当 a1 = b1 并且 a2 = b2 a3 = b3的时候 将表B的b6 更新到表A的a5中 如何写语句,谢谢 展开
 我来答
Andy_Sun321
2018-07-05 · TA获得超过1376个赞
知道小有建树答主
回答量:811
采纳率:89%
帮助的人:728万
展开全部

可以用游标来执行更新,也可以用update语句更新。

但是oracle没有update from语句,可以用子查询来给源数据表的字段赋值,如果需要赋多个值的话,则用括号括起来,格式:

update table_name
set (field1, field2, ... ) = (select value1, value2, ... from source_table)
where ...

而where条件中则可以用exists测试是否要更新记录。更新语句大概这样:

update A s1
set a5 = (select b6 
          from B s2 
          where s2.b1 = s1.a1 and s2.b2 = s1.a2 and s2.b3 = s1.a3 and rownum = 1)
where exists (
   select b6 
   from B s2 
   where s2.b1 = s1.a1 and s2.b2 = s1.a2 and s2.b3 = s1.a3 and rownum = 1
)

即赋值子句和where条件是类似的。

ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式