update abc set abc.c = b.c from abc, (select a,b, c = max(c) from A group by a,b) b where abc.a = b.a and abc.b = b.b
insert into abc select a, b, max(c) from A where cast(a as varchar(4000)) + cast(a as varchar(4000)) not in (select cast(a as varchar(4000)) + cast(a as varchar(4000)) from abc) group by a, b

解决方案 »

  1.   

    Liroyal(叶枫) 你试过效率吗???在几百w的数据量的情况下,你的写法效率不高吧?
      

  2.   

    几个cast函数不会占用太多的资源.我经常操作上千万的数据表,慢肯定是慢的了,因为数据量摆在那.
    除此之外,我没有更好的办法.
      

  3.   

    A,或者B,,,等等这些表有18个字段,每个表都是几百W的数据量
    我们的数据库服务器只有1G的内存,好像是DELL 2650,但是内存太小了 
    还是多谢liroyal!
      

  4.   

    DELL2650还不能处理区区几百万数据?