T SQL根据计算字段删除记录

时间:2013-06-03 10:26:21

标签: tsql

我想删除我的表中6个字段的答案为零/ null的行:

Delete
from TableA
WHERE (a + b + c + d + e + f) IS NULL

由于

4 个答案:

答案 0 :(得分:2)

 WHERE COALESCE((a + b + c + d + e + f), 0) = 0

 WHERE NULLIF((a + b + c + d + e + f), 0) IS NULL

无需为每列提供此功能

答案 1 :(得分:1)

试试这个

DELETE T FROM
  dbo.TableA T
  WHERE COALESCE(a, 0) + 
        COALESCE(b, 0) + 
        COALESCE(c, 0) +
        COALESCE(d, 0) +
        COALESCE(e, 0) +
        COALESCE(f, 0) = 0

请参阅this SQLFiddle

答案 2 :(得分:0)

如果您只想删除这些行,则可以使用

之类的查询
DELETE FROM TableName
WHERE (a + b + c + d + e + f) IS NULL OR (a + b + c + d + e + f) = 0

我希望它会对你有所帮助。 :)

答案 3 :(得分:0)

您的意思是如果字段为空或者1个或多个字段为空吗?

可能很简单:

delete
from TableA
WHERE (a + b + c + d + e + f) IS NULL