Oracle关联更新语法(T-SQL中的update...from)

本文介绍两种更新数据库表中特定字段的方法。第一种方法通过自连接更新表中的EMP_ID, APPROVER_SEQUENCE, 和 APPROVER_ID字段;第二种方法适用于Oracle 10g及以上版本,采用MERGE语句同步两个表之间的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

表关联更新语句:

场景:

表:

AM_APPROVE_LIST_LOG_SAMMY

AM_APPROVE_LIST_SAMMY

 

更新栏位:

EMP_ID, APPROVER_SEQUENCE, APPROVER_ID

 

关联栏位:

EMP_ID,  APPROVER_ID

 

方法一:

UPDATE am_approve_list_log_sammy a
   
SET (a.emp_id, a.approver_sequence, a.approver_id) =
          (
SELECT b.emp_id, b.approver_sequence, b.approver_id
             
FROM am_approve_list_sammy b
            
WHERE b.emp_id = a.emp_id AND b.approver_id = a.approver_id)
 
WHERE EXISTS (SELECT 1
                 
FROM am_approve_list_sammy c
                
WHERE c.emp_id = a.emp_id AND c.approver_id = a.approver_id) 

 

 

方法二:(10g(含)以上版本才可以使用)

MERGE 
INTO gt$fm_form_field_import imp
         USING fm_form_field fie
         
ON (    imp.field_name = fie.field_name
             
AND fie.form_kind = 'BQE.FORM.7'
             
AND fie.table_name = 'BQEFORM7')
         
WHEN MATCHED THEN
            
UPDATE
               
SET imp.description = fie.description,
                   imp.is_query 
= fie.is_query,
                   imp.is_default_value 
= fie.is_default_value,
                   imp.is_query_show 
= fie.is_query_show,
                   imp.is_form_show 
= fie.is_form_show,
                   imp.is_participant 
= fie.is_participant,
                   imp.is_mail_show 
= fie.is_mail_show
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值