我试图从表中选择仅提取符合我条件的数据。 我基本上想
不包括2019年,
不包括英亩= 0,
不包括 policynumber为null,
排除其中(liab = 0和acres> 0)。
由于未达到预期的行数,我可能会得到一些错误的否定,是否有办法像我在excel中那样,通过一系列步骤来做到这一点,但我显然没有想要在excel中做到这一点。
from [dbo].[Hail_Data_2013_2018_incl_SSN]
where cropyear <> 2019 or (policynumber is not null) or (PolicyAcres <> 0)
or (Policyliability <> 0 or PolicyAcres < 0)
一步一步地行将行得通,是否可以将其重写以逐步完成,或者我的“或”组合是否错误?
答案 0 :(得分:0)
我认为您的逻辑需要一些工作。我怀疑您需要“与”而不是“或”。发布数据表和预期结果,我们可以帮助您进行深入研究。
declare @mydata as table (policyacres int, policynumber varchar(10), Policyliability int, cropyear int)
INSERT INTO @mydata
Select -1, '123x', 0, 2019 UNION ALL
Select 1,'224y', 0, 2019 UNION ALL
Select -1,'223d',0,2020
Select * from @mydata
where cropyear <> 2019 and (policynumber is not null) and (PolicyAcres <> 0) and (Policyliability = 0 and PolicyAcres < 0)
答案 1 :(得分:0)
我想你想要这个:
where
(cropyear <> 2019) and
(policynumber is not null) and
(PolicyAcres <> 0) and
(Policyliability <> 0 or PolicyAcres <= 0)