现在有表A,包含两列x和y,其中x是主键。表B和表A的结构一摸一样,里面的数据不相同现在我想把表A中的y列的数据更新成用x关联的B表中的y列的数据。我在SQLSERVER中这样写sql就可以update A set A.y = B.y from A,B where A.x = B.x但是这样的SQL语句在oracle中编译都过不去,更别说执行了oracle中实现这个要怎么写呢。。多谢。。急

解决方案 »

  1.   

    試試這樣行不
    update A set A.y=(select B.y from B where exists (select 1 from B where A.x=B.x))
      

  2.   

    UPDATE A 
    SET 
        Y=(SELECT Y FROM B WHERE X=A.X) 
    FROM 
        A
    WHERE
        EXISTS(SELECT * FROM B WHERE WHERE X=A.X)
      

  3.   

    update a set y=nvl((select y from b where x=a.x),a.y)
      

  4.   

    update (select A.x ax,A.y ay1,B.x bx,B.y by1 from A ,B  where A.x = B.x) set by1 = ay1;数量大的话,用这句
      

  5.   

    update (select A.x ax,A.y ay1,B.x bx,B.y by1 from A ,B  where A.x = B.x) set by1 = ay1;这句好~~~