使用merge into 优化update

MERGE INTO DMS_CRC_EVENT_SD_TRANS t1 
USING DMS_CRC_JL_EVENT_BASIC t2
ON(
   to_char(t2.power_on_time,'yyyy-mm-dd')=to_char(t1.outage_end_time,'yyyy-mm-dd') AND
   to_char(t2.power_off_time,'yyyy-mm-dd')=to_char(t1.outage_start_time,'yyyy-mm-dd') AND
   t1.trans_code=t2.hangcardno AND  t2.crc_trans_id IS NULL
  )
when matched then  
 UPDATE SET t1.sd_outage_start_time=power_off_time,t1.sd_outage_end_time=power_on_time

 ,t1.is_sd_start_time_correct=2,t1.is_sd_end_time_correct=2;


 UPDATE DMS_CRC_EVENT_SD_TRANS t1 SET (t1.sd_outage_start_time,t1.sd_outage_end_time
 ,t1.is_sd_start_time_correct,t1.is_sd_end_time_correct)=
(SELECT  t2.power_off_time,t2.power_on_time,2,2
  from DMS_CRC_JL_EVENT_BASIC t2
WHERE t2.hangcardno=t1.trans_code
AND to_char(t2.power_off_time,'yyyy-mm-dd')=to_char(t1.outage_start_time,'yyyy-mm-dd')
AND to_char(t2.power_on_time,'yyyy-mm-dd')=to_char(t1.outage_end_time,'yyyy-mm-dd')
AND t2.crc_trans_id IS NULL) WHERE t1.is_sd_start_time_correct =1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值