SSRS搜索多个参数允许一些空白
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSRS搜索多个参数允许一些空白相关的知识,希望对你有一定的参考价值。
我希望能够使用4个参数中的任何一个来搜索订单的位置。在查找一组完整参数时,我的工作原理是什么,但当它们中的任何一个留空时,不会返回任何结果。 (所有4个参数都声明为varchar(255))
select
ContactName,
ContactEmail,
ContactPhone,
OriginCity,
OriginState,
OriginZip,
DestCity,
DestState,
DestZip
from Orders
where
(OriginCity in (@Origin)
or OriginState in (@OriginS))
and
(DestCity in (@Dest)
or DestState in (@DestS))
order by
OriginCity,
OriginState,
DestCity,
DestState
答案
您需要在WHERE子句中添加一个额外的OR条件来处理NULL参数。所以你的WHERE子句应该是这样的:
WHERE
(
(OriginCity in (@Origin) OR @Origin IS NULL )
OR
(OriginState in (@OriginS) OR @OriginS IS NULL )
)
AND
(
(DestCity in (@Dest) OR @Dest IS NULL )
OR
(DestState in (@DestS) OR @DestS IS NULL )
)
要避免表扫描,请在查询的最后添加OPTION(RECOMPILE)。
另一答案
您可以尝试使用动态SQL来处理此问题。请参阅链接 - http://www.sommarskog.se/dynamic_sql.html并获得适当的性能指标。
以上是关于SSRS搜索多个参数允许一些空白的主要内容,如果未能解决你的问题,请参考以下文章