我需要構建一條SQL語句,以從某個表中刪除與另一個select語句匹配的記錄。Sql server DELETE和WITH子句
在Teradata數據,我們使用
delete from table1
where (col1, col2) in (
select col1,col2
from table2
)
雖然在SQL Server它不允許WHERE..IN子句中有超過1列。我以爲我可以使用WITH子句:
with tempTable(col1,col2) as (
select col1,col2
from table2
)
delete from table1
where table1.col1 = tempTable.col1
and table1.col2 = tempTable.col2
如何使用WITH..DELETE子句?有另一種方法嗎?
......你可以使用WITH子句,但這種方法更簡單。 – 2009-07-24 13:52:59
感謝它的工作!但如何使用WITH..DELETE? – ala 2009-07-24 14:10:52
想一想,我沒有理由使用WITH子句。當事情嚴重雜亂或複雜時,我使用WITH,並且基於簡單連接到另一個表的表格刪除不夠複雜,不足以保證額外的編碼工作。 – 2009-07-24 14:26:03