有表A和表B 
当表A.1 = B.1 AND A.2 = B.2时
表B.3 = A.3
请问用什么函数怎么写。
update 只能单表更新。 

解决方案 »

  1.   

    update view 
    可以更新视图
      

  2.   

    update b  set B.3 =(select 
    a.3
    from a,b
    where A.1 = B.1 AND A.2 = B.2)
      

  3.   

    ora-01427 单行子查询返回多行
      

  4.   

    --用merge
    merge into tb  b
    using ta a
    on( A.1 = B.1 AND A.2 = B.2)
    when matched then update set B.3 = A.3;
      

  5.   

    如果你确定数据没问题的话
    可以加上rownum 
    update b  set B.3 =(select 
    a.3 
    from a,b 
    where A.1 = B.1 AND A.2 = B.2 and rownum=1) 
      

  6.   

    我还是在仔细的说明下吧
    表A和表B
      A1      A2      A3        B1     B2    B3    希望修改后是B3=A3
    DVJ02     55       12      DVJ68   77    8           7
    DVJ12     85       5       DVJ12   85    9           5
    DVJ68     77       7       DVJ02   55    10          12
    DVJ98     56       8       DVJ98   56    1           8
    用select 
    a.3 
    from a,b 
    where A.1 = B.1 AND A.2 = B.2 查询出来的结果肯定是多行的并且没有重复所以怎么个去掉重复行。
      

  7.   

    merge into b
    using a
    on( A.A1 = B.B1 AND A.A2 = B.B2)
    when matched then update set B.B3 = A.A3; 
      

  8.   

    merge into A  AA 
         using  B  BB 
         on (AA.A1 = BB.B1 AND AA.A2 = BB.B2)
       when MATCHED then
            update set  AA.A3 = BB.B3 谢谢各位的帮助最后还是用merge解决了真是个有用的函数