SQL Server和Oracle 的MERGE语法


--SQL Server
MERGE INTO TEST_IN_COPY3 a 
 USING ( SELECT '武汉-北京998' AS NAME, '2017 - 11 - 21 11 : 53 : 49.0000000 + 00 : 00' AS datetimeoffseta, '2017-11-10 11:52:20' AS datetim2e, 998 AS ID,
       '2017-11-07 11:52:10' AS datetimea, '2017-11-10 00:00:00' AS datea, 5.5600 AS numerica, 5.55 AS floata ) b 
ON (a.ID = b.ID)

WHEN MATCHED THEN
UPDATE SET a.NAME = b.NAME,
 a.datetimeoffseta = b.datetimeoffseta,
 a.datetim2e = b.datetim2e,
 a.datetimea = b.datetimea,
 a.datea = b.datea,
 a.numerica = b.numerica,
 a.floata = b.floata

WHEN NOT MATCHED THEN
INSERT (NAME, datetimeoffseta, datetim2e, ID, datetimea, datea, numerica, floata)
   VALUES (b.NAME, b.datetimeoffseta, b.datetim2e, b.ID, b.datetimea, b.datea, b.numerica, b.floata) ;
   
   
--Oracle 
MERGE INTO ANALYTICINDEX p 
USING (select ? as F4200,? as GUID,? as CREAT_TM,? as UPDT_TM,? as IS_VLD,? as RMRK,? as F4250,? as F4251,? as F4252,? as F4253,? as F4254 from dual) pn ON (p.GUID=pn.GUID )

WHEN MATCHED THEN 
UPDATE SET F4200=pn.F4200 ,CREAT_TM=pn.CREAT_TM ,UPDT_TM=pn.UPDT_TM ,IS_VLD=pn.IS_VLD ,RMRK=pn.RMRK ,F4250=pn.F4250 ,F4251=pn.F4251 ,F4252=pn.F4252 ,F4253=pn.F4253 ,F4254=pn.F4254

WHEN NOT MATCHED THEN  
INSERT (F4200 ,GUID,CREAT_TM,UPDT_TM,IS_VLD,RMRK,F4250,F4251,F4252,F4253,F4254)
  VALUES (pn.F4200 ,pn.GUID,pn.CREAT_TM,pn.UPDT_TM,pn.IS_VLD,pn.RMRK,pn.F4250,pn.F4251,pn.F4252,pn.F4253,pn.F4254) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值