SQL情况,当基于参数输入在where子句中时

问题描述 投票:0回答:1

我目前正在创建一个基于参数的报表,并且希望在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-clause case-when
1个回答
0
投票

您可以在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

© www.soinside.com 2019 - 2024. All rights reserved.