dm  mc  ssdm ssmc 
01  a  
02  b 
03  c  01 
04  d  02 
05  e  03 表如上。所属名称(ssmc)这个字段为空 ,现在想通过一条sql语句更新ssmc字段 
实现的效果如下: 
dm  mc  ssdm ssmc 
01  a  
02  b 
03  c  01  a 
04  d  02  b 
05  e  03  c 

解决方案 »

  1.   

    update t
    set ssmc = (
    select mc
    from t t2
    where 
    t.dm = t2.ssdm
    );
    try 一下。
      

  2.   

    update t5
    set ssmc=(
    select t2.val1
    from t5 t2
    where t2.dm=t5.ssdm
    );
      

  3.   

    update t5
    set ssmc=(
    select t2.mc
    from t5 t2
    where t2.dm=t5.ssdm
    );
      

  4.   


    update ta a set
    ssmc=(select mc from ta b where a.dm=b.ssdm)
    where exists(select 1 from ta b where a.dm=b.ssdm)
      

  5.   


    要加where条件,否则没有匹配的也被更新了
      

  6.   

    dm  mc  ssdm ssmc 
    01  a  
    02  b 
    03  c  01 
    04  d  02 
    05  e  03 表如上。所属名称(ssmc)这个字段为空 ,现在想通过一条sql语句更新ssmc字段 
    实现的效果如下: 
    dm  mc  ssdm ssmc 
    01  a  
    02  b 
    03  c  01  a 
    04  d  02  b 
    05  e  03  c 他表中的ssmc本来就是空的,应该不存在楼上说的那个问题。
      

  7.   


    SQL> 
    SQL> select tab1.dm, tab1.dc, tab1.ssdm, tab2.dc
      2    from csdn_test tab1, csdn_test tab2
      3   where tab1.ssdm = tab2.dm(+)
      4  ;DM                                                                               DC                                                                               SSDM                                                                             DC
    -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
    03                                                                               c                                                                                01                                                                               a
    04                                                                               d                                                                                02                                                                               b
    05                                                                               e                                                                                03                                                                               c
    02                                                                               b                                                                                                                                                                 
    01                                                                               a                                                                                                                                                                 SQL>