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分钟,不知道有没有更好的办法?

解决方案 »

  1.   

    update   nc_cbry   a ,yh2007z2   b  set a.dwdm=b.dwdm where b.ybbh=a.ybbh
      

  2.   

    update   nc_cbry   a   set   dwdm=(select   b.dwdm   from   yh2007z2   b   where   ybbh=a.ybbh)
    where exists(select 1 from yh2007z2  where ybbh=a.ybbh)
      

  3.   

    写法用楼上的写法即可,最好
    dwdm=(select max(b.dwdm) from  yh2007z2 b where ybbh=a.ybbh) 
    防止一对多情况导致语句出错
    另外,如果效率低,尝试为 yh2007z2表的ybbh 创建索引。
      

  4.   

    update   nc_cbry   a   set   dwdm=(select   b.dwdm   from   yh2007z2   b   where   ybbh=a.ybbh) 
    这样即可吧
      

  5.   

    merge MERGE INTO nc_cbry a 
       USING yh2007z2   b
       ON (a.ybbh= b.ybbh and ...)
     WHEN MATCHED THEN
      UPDATE
      SET a.dwdm= b.dwdm,
      a.XXX = b.XXX
      

  6.   


    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)