我目前正在创建一个基于参数的报表,并且希望在where子句中使用when语句的情况。
Declare @TPS Varchar(152) = 'Include'
And (CASE WHEN @TPS = 'Include' THEN (TPS is null or (TPS = '')) ELSE (TPS IS NOT NULL) END)
以上是我正在尝试做的示例。我无法使用开头和结尾,因为我想在语句中使用7个case,以便SSRS中的用户可以将值传递到报表中,这将是很多组合。
我希望能够传递参数并依次更改我的where子句。
您可以在where子句中使用case语句或一系列case语句:
Declare @TPS Varchar(152) = 'Include'
select * from someTable
WHERE CAT = 'Spot' AND
CASE
WHEN @TPS = 'Include' then true
WHEN @TPS = null or @TPS = '' then false
WHEN @TPS not = null then true
else false
END
仅将case语句认为是返回true或false