2016-03-28 22 views
2

私はこれを動作させるためにすべてを試しました。私はそれがMySQLのために働くことを知っていますが、私はSQL Serverでこれを動作させる方法については困惑しています。ここからのコードを使用して複数の列と複数の条件SQL Serverの削除?

MySQL delete multiple rows in one query conditions unique to each rowとここFiddle MySQL

DELETE FROM tab 
WHERE (col1, col2) IN (('2016/3/1', 2), ('2016/3/2', 4), ('2016/3/3', 6)); 

私はあなたがSQL Serverで以下これを行うことができます知っているが、これは1つの列のみを扱います。

DELETE FROM tab 
WHERE col2 IN (2, 4, 6); 

Fiddle SQL Server

どのようにSQL Serverで同じことを達成することができますか?

答えて

3

はこれを試してみてください:基準値のすべてを含むのインラインテーブルを作成するように

DELETE tab 
FROM tab 
JOIN (VALUES ('2016/3/1',2),('2016/3/2',4),('2016/3/3',6)) AS t(d, v) 
    ON tab.col1 = t.d AND tab.col2 = t.v; 

クエリは、SQL ServerのTable Value Constructorを使用しています。

Demo here
+0

ありがとうございます。 –