表A
字段代码 字段类型
USER_NO NUMBER
NAME VARCHAR2(128)
表B
字段代码 字段类型
USER_NO NUMBER
NAME VARCHAR2(128)A、B表数据量都在400万左右,现在想用B表的数据更新A表的用户姓名,并把B表中A表没的记录加入到A表,请写出最优化的SQL我看到的 一题面试题  不会 !

解决方案 »

  1.   


    merge into gjhohj_b T1 using (select * from gjhohj_a) T2
    on(T1.ID = T2.Id)
    when matched then
         update set T1.NAME = T2.NAME,T1.VALUE = T2.VALUE ;
    when not matched then
         insert into T1 values(T2.id,T2.name,T2.value) ;
      

  2.   


    merge into gjhohj_b T1 using (select * from gjhohj_a) T2
    on(T1.ID = T2.Id)
    when matched then
         update set T1.NAME = T2.NAME,T1.VALUE = T2.VALUE 
    when not matched then
         insert values(T2.id,T2.name,T2.value) ;
      

  3.   

    1楼正解,大数据量同步,记住merge into的语法。