SQL Server:筛选标准中具有多个条件的数据
我正在使用SQL Server 2017,并尝试在where语句中使用“和/或”清理我的数据集 到目前为止,这是我所拥有的,但它不起作用SQL Server:筛选标准中具有多个条件的数据,sql,sql-server,where-clause,Sql,Sql Server,Where Clause,我正在使用SQL Server 2017,并尝试在where语句中使用“和/或”清理我的数据集 到目前为止,这是我所拥有的,但它不起作用 WHERE ([Campaign] NOT LIKE '%Search%') AND (([Campaign] = '2018 BRAND' AND [Tactic] <> 'Display' AND [Date] NOT BETWEEN '2018-01-01' AND '2018-
WHERE
([Campaign] NOT LIKE '%Search%')
AND (([Campaign] = '2018 BRAND'
AND [Tactic] <> 'Display'
AND [Date] NOT BETWEEN '2018-01-01' AND '2018-04-27')
OR
([Campaign] = '2017 BRAND'
AND [Date] NOT BETWEEN '2017-01-01' AND '2017-01-07'))
我试图消除的三件事是:
如果您试图删除行,那么我认为
或
更合适:
WHERE ([Campaign] NOT LIKE '%Search%') OR
NOT ([Campaign] = '2018 BRAND' AND Tactic = 'Display' AND [Date] BETWEEN '2018-01-01' AND '2018-04-27') OR
NOT ([Campaign] = '2017 BRAND' AND [Date] BEWEEN '2017-01-01' and '2017-01-07')
你的逻辑有点复杂。我的方法是使用
NOT
,这样您就可以看到每个条件,并简单地保留所有不匹配的内容。为什么不将删除查询拆分为可管理的块,而不是尝试一次性完成?
WHERE ([Campaign] NOT LIKE '%Search%') OR
NOT ([Campaign] = '2018 BRAND' AND Tactic = 'Display' AND [Date] BETWEEN '2018-01-01' AND '2018-04-27') OR
NOT ([Campaign] = '2017 BRAND' AND [Date] BEWEEN '2017-01-01' and '2017-01-07')