如何将Oracle MERGE语句转换为T-SQL语句?

时间:2017-10-19 19:45:15

标签: sql sql-server oracle tsql merge

在我正在阅读的其中一本书中,它展示了如何合并来自2个不同表的记录,这里是下面的代码,我相信这是在Oracle SQL中。

merge into emp_commission ec
using (select * from emp) emp
   on (ec.empno=emp.empno)
when matched then
   update set ec.comm = 1000
   delete where (sal < 2000)
when not matched then
   insert (ec.empno, ec.enme, ec.deptno, ec.comm)
   values (emp.empno, emp.ename, emp.deptno, emp.comm)

我试过在SQL Server中运行它,但是我得到了 一个MERGE语句必须以分号(;) 错误终止。我添加了半-colon但仍然得到同样的错误。

1 个答案:

答案 0 :(得分:0)

merge into emp_commission ec
using (select * from emp) emp
   on (ec.empno=emp.empno)
when matched and 
sal < 2000 THEN
delete
when matched then
   update 
   set ec.comm = 1000
when not matched then
   insert (empno, enme, deptno, comm)
   values (emp.empno, emp.ename, emp.deptno, emp.comm);