MERGE INTO TESTDATE a
USING (SELECT I_YEAR,"D_DAY", "D_YEAR" FROM TESTDATE1) b
ON (a.I_YEAR = b.I_YEAR) --替换条件
WHEN MATCHED THEN
UPDATE SET
a."D_DAY" = b."D_DAY",a.D_YEAR = b.D_YEAR
问题示例:
MERGE INTO TR_BDGPAYOUT_NORM7 AA
USING ( SELECT DISTINCT A.S_TRECODE,A.S_BNKCODE AS S_BNKCODE,A.S_BNKCLASS AS S_BNKCLASS,B.S_BNKCLASS AS LW FROM
(select S_TRECODE,S_BNKCODE,S_BNKCLASS
FROM TR_BDGPAYOUT_NORM8 WHERE S_TRECODE like '370000%' and D_ACCT='2012-04-19') A,
(select S_TRECODE,S_BNKCODE,S_BNKCLASS FROM TR_BDGPAYOUT_NORM7 WHERE S_TRECODE like '370000%' and D_ACCT='2012-04-18') B
WHERE A.S_TRECODE=B.S_TRECODE AND A.S_BNKCODE=B.S_BNKCODE AND A.S_BNKCLASS<>B.S_BNKCLASS ) BB
ON AA.S_TRECODE=BB.S_TRECODE AND AA.S_BNKCODE=BB.S_BNKCODE AND AA.S_TRECODE like '370000%' AND AA.D_ACCT='2012-04-18'
WHEN MATCHED THEN
update SET AA.S_BNKCLASS=BB.S_BNKCLASS