语句如下,请帮忙看下,多谢各位啦。
MERGE INTO BILL.T_BY_DISCT a
USING (
SELECT BY_SEQ,USER_NAME,ACCOUNT_ID,SI_EXTERNAL_ID,BY_MIN,BY_MAX,BY_PRECENT,BY_TYPE,BY_LEVEL,STATUS,CREATE_DATE,END_DATE,BY_OBJECT_ID,CREATE_STAFF,FEE_NBR,STATUS_CHG_DATE,COMMENTS from wcl.T_by) b
ON (a.BY_SEQ = b.BY_SEQ)
WHEN MATCHED THEN
UPDATE SET a.BY_SEQ=b.BY_SEQ,a.USER_NAME=b.USER_NAME,a.ACCOUNT_ID=b.ACCOUNT_ID,a.SI_EXTERNAL_ID=b.SI_EXTERNAL_ID,a.BY_MIN=b.BY_MIN,a.BY_MAX=b.BY_MAX,a.BY_PRECENT=b.BY_PRECENT,a.BY_TYPE=b.BY_TYPE,a.BY_LEVEL=b.BY_LEVEL,
a.STATUS=b.STATUS,a.CREATE_DATE=b.CREATE_DATE,a.END_DATE=b.END_DATE,a.BY_OBJECT_ID=b.BY_OBJECT_ID,a.CREATE_STAFF=b.CREATE_STAFF,a.FEE_NBR=b.FEE_NBR,a.STATUS_CHG_DATE=b.STATUS_CHG_DATE,a.COMMENTS=b.COMMENTS
WHEN NOT MATCHED THEN
INSERT (BY_SEQ,USER_NAME,ACCOUNT_ID,SI_EXTERNAL_ID,BY_MIN,BY_MAX,BY_PRECENT,BY_TYPE,BY_LEVEL,STATUS,CREATE_DATE,END_DATE,BY_OBJECT_ID,CREATE_STAFF,FEE_NBR,STATUS_CHG_DATE,COMMENTS)
VALUES (BY_SEQ,USER_NAME,ACCOUNT_ID,SI_EXTERNAL_ID,BY_MIN,BY_MAX,BY_PRECENT,BY_TYPE,BY_LEVEL,STATUS,CREATE_DATE,END_DATE,BY_OBJECT_ID,CREATE_STAFF,FEE_NBR,STATUS_CHG_DATE,COMMENTS);
--参考:
merge into table_a a
using table_b b
on(a.id=b.id)
when matched then
update
set a.col_1=b.col_1
a.col_2=b.col_2
when not matched then
insert (a.col_1,a.col_2)
values (b.col_1,b.col_2);