有人可以幫助我嗎?我試圖轉換下面合併到另一個查詢,我只允許插入使用和更新一次:如何更改此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