【发布时间】:2015-10-20 05:40:38
【问题描述】:
我想根据条件更新或插入 Oracle 表。
假设表中有 2 列(如 id 和 name),一个或多个 name 具有相同的 id。在这种情况下,我想检查 id 和名称(如 1,'Buyer'),如果它存在,那么我想将名称 'Buyer' 更新为 'Service Provider'。否则我只想插入值(1,'服务提供者')。
我通过 Merge 进行了尝试,但它会将 id 1 的所有名称列更新为“服务提供者”。
merge into party_type p
using (select 1 party_id, 'Buyer' party_type from dual) t
on (t.party_id = p.party_id)
when matched then
update set party_type = 'Service Provider'
when not matched then
insert (party_id,party_type) values(1,'Service Provider');
表中可用数据:
1 Buyer
1 Buyer Agent
1 Vendor
提前致谢。
【问题讨论】: