【问题标题】:Multiple column and multiple criteria SQL Server Delete?多列多条件 SQL Server 删除?
【发布时间】:2016-03-28 07:11:15
【问题描述】:

我已经尽一切努力让它发挥作用。我知道它适用于 MySQL,但我不知道如何让它在 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 中执行此操作,但这仅针对一列。

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

Fiddle SQL Server

如何在 SQL Server 中实现同样的功能?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    试试这个:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多