oracle 怎么更新多个值 update A a set a.id = (select b.id from B b where a.name=b.name)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 怎么更新多个值 update A a set a.id = (select b.id from B b where a.name=b.name)相关的知识,希望对你有一定的参考价值。

update A a set a.id = (select b.id from B b where a.name=b.name)
更新的提示单个查询返回多个值。
我想实现,把B表所有的ID根据名字都更新A表去。
如何实现一次更新?

参考技术A 想办法保证赋值唯一就行了,否则聚合函数不能做UPDATE更新
如果select b.id from B b group by b.name中每一个b.name只有唯一一个b.id那么就可以
update A a set a.id = (select DISTINCT b.id from B b where a.name=b.name)
试试本回答被提问者采纳
参考技术B 语句没问题,问题在于你B表的name有重复的,所以匹配到就是多个的结果,自然不能实现对单个A表的一条记录进行更新,你看是否能找个唯一的字段进行匹配

oracle 多个 update语句怎么写

update 表名 set 列名1=需要要更新的新值, 列名2=需要要更新的新值,...... where 条件列名=值 如: update dbzx_db set yljje=r.yljje where jsfzh=.sfzh or sfzh=r.sfzh and yljje is null 参考技术A 循环提交update语句。

以上是关于oracle 怎么更新多个值 update A a set a.id = (select b.id from B b where a.name=b.name)的主要内容,如果未能解决你的问题,请参考以下文章

oracle 多个 update语句怎么写

oracle 怎样使UPDATE 更新序列??

oracle update触发器如何获取被修改的字段

oracle19cupdate个别字段没更新

oracle 如何实现对单个表批量更新

MYSQL怎么将表中的A字段值更新B字段值?求sql语句