update test1 set sales=(select sales from test2 where code=002);

解决方案 »

  1.   

    update test1 set sales=(select sales from test2 where code='002');
      

  2.   

    update test1 set sales=(select sales from test2 where test1.sales is null)
    where test1.code=test2.code;
      

  3.   

    update test1 A set sales=(select sales from test2 B where B.code=A.code);
      

  4.   

    update test1 A set sales=(select sales from test2 B where B.code=A.code where rownum=1);
      

  5.   

    要保证两个表里数据的唯一性,然后可以怎样更新
    update tes1 set sales=(select sales from test2) where test1.code=test2.code;
      

  6.   

    上面的写法有几种都是可行的,但我看你的要求好像是要整理数据,而不是要编写程序,如果这样的话,还有一种方法也许更好:
    create table test3 as select test1.code,test1.mc,test2.sales from test1,test2 where test1.code=test2.code
    如果你只想在test1的sales为null时才用test2的sales,就可以这样写:
    create table test3 as select test1.code,test1.mc,decode(test1.sales,null,test2.sales,test1.sales) from test1,test2 where test1.code=test2.code
    这样,就可以得到一个表test3,这里面是你想要的数据
      

  7.   

    当然使用子查询是一种方案
    重新创建表也是一种方案
    但是有没有想过别的方案
    对sql大家又真正的掌握了多少?
    下面这个例子是不是符合大家的要求?特别是大量数据的更新http://www.itpub.net/showthread.php?s=&threadid=45822