我正在使用SQL Server 2016,我有一个如下所示的表:
Create table testA
(
ID int not null,
OriginalValue int null
)
Insert into testA (ID, OriginalValue)
values (1, 10), (2, 10), (3, 10),
(4, 10), (5, 10), (6, null), (7, null)
我需要根据
显示价值Declare @intExclude int = 1
Select ID,
OriginalValue as OriginalValue
From testA
Where
--@intExclude = 1
Where IsNull(OriginalValue,0) > 0
--@intExclude = 0
where isnull(Originalvalue,0) = 0 or IsNull(originalvalue,0) > 0
当排除为0时,如何显示所有值,而当排除为1时,如何显示o记录 我已经尝试了where子句的案例,但没有成功?
由于 Oded Dror
答案 0 :(得分:0)
这是你想要的吗?
Where (@intExclude = 1 and coalesce(OriginalValue, 0) > 0) ) or
(@intExclude = 0 and coalesce(Originalvalue, 0) >= 0 )
答案 1 :(得分:0)
我想你需要这个:
Declare @intExclude int = 1
Select ID, OriginalValue
From testA
Where (@intExclude = 1 and OriginalValue is not null)
or (@intExclude = 0)
答案 2 :(得分:0)
请试试这个
Where
(@intExclude = 1
and IsNull(OriginalValue,0) > 0 ) or
(@intExclude = 0
and isnull(Originalvalue,0) >= 0)
答案 3 :(得分:0)
如果适用于你,试试这个吗?
Where (@intExclude = 1
and IsNull(OriginalValue,0) > 0 ) OR (@intExclude = 0
and (isnull(Originalvalue,0) = 0 or IsNull(originalvalue,0) > 0 ));