晚上好,我希望有人可以帮助我(我已经为此工作了4天)
我一直在使用SQL数据库和Report Builder试图找出如何在where子句之后编写此参数的代码。
我有一个名为@Active的参数,它是一个int,取值为0,1和3.在表中的列中称为IsActive,只有2个值0表示不活动,1表示活动。我要求用户选择活动,非活动或两者都用于报告目的。
在where子句之后我使用语句where
IsActive = (CASE WHEN @Active between 0 and 1 THEN @Active ELSE ??? END)
这是我被卡住的地方。
我似乎无法在所有情况下运行此报告
我想放在Else IsActive >= 0
之后但它出错了,因此报告返回活动和非活动数据。有人可以帮忙吗?
谢谢
答案 0 :(得分:1)
您不需要Case When
。
以下条款适用于您。
(isActive = @Active or @Active = 3)
答案 1 :(得分:0)
如果要将多个条件应用于CASE语句,可以按如下方式执行:
CASE
WHEN @Active >= 0 and @Active <= 1 THEN @Active
WHEN @Active >= 0 THEN [put some other value here]
ELSE [put your catchall value here]
END
希望有所帮助。