update nc_cbry a set dwdm=(select b.dwdm from yh2007z2 b where ybbh=a.ybbh)
提示nc_cbry.ybbh 为NULLupdate nc_cbry a set dwdm=(select b.dwdm from yh2007z2 b where ybbh=a.ybbh)
where b.ybbh in nc_cbry;
以下这个语句能执行,但更新32000多数据要5分钟,不知道有没有更好的办法?
提示nc_cbry.ybbh 为NULLupdate nc_cbry a set dwdm=(select b.dwdm from yh2007z2 b where ybbh=a.ybbh)
where b.ybbh in nc_cbry;
以下这个语句能执行,但更新32000多数据要5分钟,不知道有没有更好的办法?
where exists(select 1 from yh2007z2 where ybbh=a.ybbh)
dwdm=(select max(b.dwdm) from yh2007z2 b where ybbh=a.ybbh)
防止一对多情况导致语句出错
另外,如果效率低,尝试为 yh2007z2表的ybbh 创建索引。
这样即可吧
USING yh2007z2 b
ON (a.ybbh= b.ybbh and ...)
WHEN MATCHED THEN
UPDATE
SET a.dwdm= b.dwdm,
a.XXX = b.XXX
update nc_cbry a
set a.dwdm = (select b.dwdm from yh2007z2 b where b.ybbh=a.ybbh)
where exists (select 1 from yh2007z2 b where b.ybbh=a.ybbh)