隐藏参数值的空值
Hide null values on parameter value
我有一个存储参数,在开始日期和结束日期之间有一个包含空值的 where 子句:
WHERE a.date is null OR a.date between @StartDate AND @EndDate
当在我的 SSRS 报告中选择任何参数值(日期范围)时,显然会选择这些空值....我的问题是,有没有办法在特定参数值(日期范围)是否已选择?
P.S。我可以在 SSRS 报告的行可见性中隐藏参数等于值且 a.date 字段为空的行,但我想尽可能避免这种情况。
提前致谢!
您可以扩展过滤条件:
WHERE a.date is null AND (@startDate is NOT NULL OR @EndDate IS NOT NULL) OR
a.date between @StartDate AND @EndDate
在 @StartDate
和 @EndDate
上使用任意组合过滤的替代方法:
where a.date is NULL or (
( @StartDate is NULL or @StartDate <= a.date ) and
( @EndDate is NULL or a.date <= @EndDate ) )
旁白:如果 a.date
不是 Date
但还包含时间,例如是 DateTime
,然后 end-date 测试包括整个最后一天直到但不包括午夜是 a.date < DateAdd( day, 1, @EndDate )
。
我有一个存储参数,在开始日期和结束日期之间有一个包含空值的 where 子句:
WHERE a.date is null OR a.date between @StartDate AND @EndDate
当在我的 SSRS 报告中选择任何参数值(日期范围)时,显然会选择这些空值....我的问题是,有没有办法在特定参数值(日期范围)是否已选择?
P.S。我可以在 SSRS 报告的行可见性中隐藏参数等于值且 a.date 字段为空的行,但我想尽可能避免这种情况。
提前致谢!
您可以扩展过滤条件:
WHERE a.date is null AND (@startDate is NOT NULL OR @EndDate IS NOT NULL) OR
a.date between @StartDate AND @EndDate
在 @StartDate
和 @EndDate
上使用任意组合过滤的替代方法:
where a.date is NULL or (
( @StartDate is NULL or @StartDate <= a.date ) and
( @EndDate is NULL or a.date <= @EndDate ) )
旁白:如果 a.date
不是 Date
但还包含时间,例如是 DateTime
,然后 end-date 测试包括整个最后一天直到但不包括午夜是 a.date < DateAdd( day, 1, @EndDate )
。