等效于 SSRS 表达式的 Case 语句

Case statement equivalent as an SSRS expressions

如何将 case 语句编写为 SSRS 表达式,这样我就不必修改 SQL 源代码?不懂不满足条件怎么调用字段,

case when  [Location Type] = 'COMMER' and [Contract] = '2)FRA Components' then 'Commercial Units'
        when  [Location Type] != 'COMMER' and [Contract] = '2)FRA Components' then 'NOn Commercial Units' else [Component Description] end [Component Description]

感谢任何指导

嵌套的 if 表达式应该可以解决问题。我还没有机会测试它,但它应该看起来像这样:

=IIF((Fields!Location_Type.Value = "COMMER") AND (Fields!Contract.Value = "2)FRA Components"), "Commercial Units", IIF((Fields!Location_Type.Value <> "COMMER") AND (Fields!Contract.Value = "2)FRA Components"), "Non Commercial", Fields!Component_Description.Value))

SDC 的回答应该不错,但我的偏好是使用 SWITCH(),尤其是在嵌套几个 IIF 时。

它看起来更像是一个 SQL CASE 语句。然后 final True 就像一个 ELSE。

=SWITCH(
        Fields!Location_Type.Value = 'COMMER' and Fields!ContractValue = '2)FRA Components' , 'Commercial Units' ,
        Fields!Location_Type.Value <> 'COMMER' and Fields!ContractValue = '2)FRA Components' , 'Non Commercial Units' ,
        True, Fields!Component_Description.Value
)

语法基本是

=SWITCH(
    Test1, ReturnValue1,
    Test2, ReturnValue2,
    Test3, ReturnValue3,
    ....
    Test999, ReturnValue999
    )

SWITCH 测试每个条件,return第一个计算结果为真。

因此,通过将最终的表达式设置为 True,如果所有先前的表达式 return 都为假,那么这个表达式将 return 一个值。