等效于 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 一个值。
如何将 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 一个值。