一个新表A 一个旧表B 
要把B.NAME更新成A.NAME   A。ID=B。ID  
update a.name=(select b.name from a,b where a.id=b.id)      
 A          B
id name    id  name
1  abc      1   aaa
2  abc      2   bbb
3  abc      3   ccc
4  abc
把A表的name 全部更新成B.name  
A
name 
aaa
bbb
ccc  
abc这样如何实现。 

解决方案 »

  1.   

    你是要再把A表中与B表ID相等的记录的name更新成B表的??
      

  2.   

    是的 把A表中ID和B表相同的记录的name更新成B表的。 
      

  3.   

    try the below sql:
    update a set a.name=nvl((select nvl(b.name,a.name) from  b where b.id=a.id),a.name)
    nvl函数的作用是:对于a中存在而b中不存在的记录,a.name仍然保留原来值,就像你例中a表的第四行记录那种情况。
      

  4.   

    update A a
    set a.name = 
      ( select b.name
        from B b
        where b.id = a.id
      )