CREATE TABLE aa(ID NUMBER, NAME VARCHAR2(20));    CREATE TABLE mm (ID NUMBER, NAME VARCHAR2(20));INSERT INTO mm VALUES (1, 'A');   
INSERT INTO mm VALUES (1, 'B');   
INSERT INTO mm VALUES (1, 'A'); 
INSERT INTO mm VALUES (1, 'B'); 
MERGE INTO aa A   
    USING mm B   
    ON(A.ID=B.ID)   
    WHEN MATCHED THEN   
    UPDATE SET A.NAME = B.NAME   
    WHEN NOT MATCHED THEN   
    INSERT VALUES(B.ID, B.NAME); 如不可以用merge,求多条数据插入或更新另一个表的办法  
高手来!~~~

解决方案 »

  1.   

    USING mm B  把这里替换为一个查询语句
    using (select id, name from mm group by id,name) b
      

  2.   

    不对,你 MM 表里,一个 ID 对应 2 个名字,你如何更新?
    using (select id, max(name) as name from mm group by id) b
    或者
    using (select id, min(name) as name from mm group by id) b只取一个值
      

  3.   

    我是要把多条数据插入到表A里,这些数据共同点是id相同,帮忙想想办法,谢谢