0
編寫一個刪除等級超過150的記錄的查詢。如果記錄存在,則更新成績併爲每個成員添加25作爲內部成員。插入記錄,如果記錄不存在等級爲25我們可以在合併中有兩個匹配的子句
Merge into employeegrades empg
using (select id, name from temp_emp) e
on (empg.id= e.id)
when matched then
update set empg.grades = empg.grades + 25
delete where empg.grades > 150
when not matched then insert (id,grades) values (e.id, 25);
這是工作正常,但當我修改如下的聲明,它不工作:
merge into employeegrades eg
using (select id, name from temp_emp) emp
on (eg.id = emp.id)
when matched and eg.grades > 150 then
delete
when matched
update set eg.grades = eg.grades+25
when not matched then
insert (id,grades)
values (emp.id, 25);
什麼是錯用以上查詢?我們不能在合併中指定兩個匹配的條件嗎?