有人可以帮助我吗?我试图转换下面合并到另一个查询,我只允许插入使用和更新一次:如何更改此db2合并查询?
MERGE INTO MYEMPLOYEE ME USING EMPLOYEE E ON ME.EMPNO = E.EMPNO
WHEN MATCHED THEN
UPDATE SET ME.SALARY = CASE WHEN ME.SALARY > E.SALARY THEN ME.SALARY ELSE E.SALARY END
WHEN NOT MATCHED THEN
INSERT VALUES(E.EMPNO, E.FIRSTNME, E.MIDINIT, E.LASTNAME, E.WORKDEPT, E.PHONENO, E.HIREDATE, E.JOB, E.EDLEVEL, E.SEX, E.BIRTHDATE, E.SALARY, E.BONUS, E.COMM);
我怎样才能做到这一点?上述合并将复制数据(如果不存在),如果存在,则会检查薪水并选择较高的数据并复制该数据。 如何通过只使用一个插入和一个更新来实现相同的目的?有人可以给我提示吗?
感谢提前:)
...为什么你有这个要求?为什么不允许“MERGE”?你已经拥有'UPDATE'和'INSERT'语句的基础,本质上 - 你卡住了什么?请注意,您必须按照该顺序执行操作 - 更新现有行然后插入新行(尽管不像某些情况那样危险)。你为什么不减少员工的薪水? –
这是大学的一项要求,所以必须有一些方法可以在不使用合并的情况下实际转换查询。或者你不觉得有另一种方式?如果员工已经存在,并且如果不存在复制整个条目的任务,则选择较高的薪水 - 该任务由我的大学分配。 – smat88dd