oracle merge 条件 什么都不做 语法
答案:2 悬赏:20 手机版
解决时间 2021-02-22 03:23
- 提问者网友:了了无期
- 2021-02-21 17:43
oracle merge 条件 什么都不做 语法
最佳答案
- 五星知识达人网友:不如潦草
- 2021-02-21 18:31
merge into dept60_bonuses b --更新dept60_bonuses b表
using ( --用select表内容
select employee_id, salary, department_id
from hr.employees
where department_id = 60) e--用e表内容更新dept60_bonuses b表
on (b.employee_id = e.employee_id) --更新条件 即哪更新
when matched then --符合面on条件
update set b.bonus_amt = e.salary * 0.2 --更新setb.bonus_amt = e.salary * 0.2
where b.bonus_amt = 0 --满足更新条件
delete where (e.salary > 7500) --更新同做删除
when not matched then --满足on条件
insert (b.employee_id, b.bonus_amt) --做insert操作
values (e.employee_id, e.salary * 0.1)
where (e.salary < 7500);
给merge用:
merge用:
merge通用于match做事 match做事
merge into TABLE_A T1 --TABLE_A表需要更新表
using TABLE_E T2 -- 用于更新表表
on (T1.USERID=T2.USERID) --两表间更新条件
when matched then --匹配关联条件作更新处理
update set
T1.USERPASSWORD=T1.USERPASSWORD+ 1,
T1.USERNAME=T2.USERNAME --处说明同更新字段
when not matched then --匹配关联条件作插入处理作更新面语句省略
insert values ( T2.USERID,T2.USERNAME, T2.USERPASSWORD);
using ( --用select表内容
select employee_id, salary, department_id
from hr.employees
where department_id = 60) e--用e表内容更新dept60_bonuses b表
on (b.employee_id = e.employee_id) --更新条件 即哪更新
when matched then --符合面on条件
update set b.bonus_amt = e.salary * 0.2 --更新setb.bonus_amt = e.salary * 0.2
where b.bonus_amt = 0 --满足更新条件
delete where (e.salary > 7500) --更新同做删除
when not matched then --满足on条件
insert (b.employee_id, b.bonus_amt) --做insert操作
values (e.employee_id, e.salary * 0.1)
where (e.salary < 7500);
给merge用:
merge用:
merge通用于match做事 match做事
merge into TABLE_A T1 --TABLE_A表需要更新表
using TABLE_E T2 -- 用于更新表表
on (T1.USERID=T2.USERID) --两表间更新条件
when matched then --匹配关联条件作更新处理
update set
T1.USERPASSWORD=T1.USERPASSWORD+ 1,
T1.USERNAME=T2.USERNAME --处说明同更新字段
when not matched then --匹配关联条件作插入处理作更新面语句省略
insert values ( T2.USERID,T2.USERNAME, T2.USERPASSWORD);
全部回答
- 1楼网友:爱难随人意
- 2021-02-21 19:12
上面的形式,用and
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯