oracle 中怎样把A表的1字段写到B表1字段

初学者_v1 2016-11-01 04:56:58
我现在有两张表A表B表我现在要把B表的zdzl字段里面的值写到A表的zl字段里面
这两张表都有一个可以关联的对应字段SLID,我这样写报错
merge into A a
using B b
on (a.slid=b.slid)
when matched then update set A.zl=B.zdzl;

说无法在原表获得一组稳定的行。
求大神们指点一下什么问题
...全文
453 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2016-11-02
  • 打赏
  • 举报
回复
表A 中的某个(些)记录,在表 B 中找到了 2 (或多余)条记录;
mayanzs 2016-11-02
  • 打赏
  • 举报
回复
源表数据不唯一
js14982 2016-11-01
  • 打赏
  • 举报
回复
如果A表中一个slid,在b表中对应多个slid,加个distinct就可以了 update A set A.zl= nvl((select distinct B.zdzl from B where a.slid=b.slid),A.ZL);
蓝色蛋饼 2016-11-01
  • 打赏
  • 举报
回复
问题在于 B表中一个slid对应多个zdzl,oracle不知道你要更新成哪个 可以现在B表条件中限制好 一个slid对应一个zdzl
sych888 2016-11-01
  • 打赏
  • 举报
回复
改写一下,以免更新成NULL值 update A set A.zl= nvl((select B.zdzl from B where a.slid=b.slid),A.ZL);
js14982 2016-11-01
  • 打赏
  • 举报
回复
update A set A.zl=(select B.zdzl from B where a.slid=b.slid);
直接这么执行

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧