2014-03-14 90 views
0

我合併記錄從newtesttestoracle刪除記錄,同時MERGE

merge into test t 
using newtest nt 
on (t.id = nt.id) 
when matched then 
    update 
    set t.name = nt.name 
when not matched then 
    insert (id, name)values (nt.id, nt.name); 

newtest這些記錄這是適合on條件需要被刪除。

雖然我可以用delete SQL做到這一點,但是我想知道它可以在MERGE語句中完成嗎?

+1

它不能完成。 MERGE只能修改MERGE INTO子句後面列出的表,但不能修飾USING子句後面的表。 – krokodilko

回答

0

由於kordiko澄清,您不能使用MERGE語句從其他表中刪除。您可以在下列單獨的語句中完成刪除操作:

DELETE FROM newtest nt 
WHERE NOT EXISTS 
(SELECT 1 FROM test t where t.id = nt.id);