今天遇到一个需求,需要做历史数据清理,将旧表的某些字段刷新到新表中。需要通过一个sql实现,这个sql居然还没一下写出来,写到这里,记录一下:
UPDATE TABLE1 T1
SET (T1.C1, T1.C2, T1.C3) =
(SELECT T2.C1, T2.C2, T2.C3 FROM TABLE2 T2 WHERE T1.BIZNO = T2.BIZNO)
WHERE EXISTS (SELECT 1 FROM TABLE2 T2 WHERE T1.BIZNO = T2.BIZNO /*AND other conditions*/)
/*AND other conditions*/;