我想添加一个参数......这将是用户输入的...问题是,如果参数为空,我希望它不要过滤任何东西......如果填充了,要过滤掉...
这可以实现吗?我估计如果空的话会做
WHERE PARAMETER = ‘’
当然这不是预期的行为......
答案 0 :(得分:0)
您可以在选择列表中添加虚拟值。
例如:
select
'All' as [Label],
null as [Value]
union all
select
a.Name as [Label],
a.Value as [Value]
from dbo.HereAreMyValues as [a]
这将为您提供“全部”选项,以显示参数中的所有内容(即无过滤)。
然后您可以将其称为..
from dbo.Data as [d]
where (d.Value = (@Parameter) or (@Parameter) is null)
这将为您提供与参数值匹配的数据,如果参数值为null,则为全部。