使用IIF

时间:2019-03-21 13:25:50

标签: reporting-services iif multiple-value

我正在寻找有关更新SSRS报告中使用的表达式的帮助。

当前表达式是这样的:

=IIF(Fields!Type.Value = "TKT", "Ticket No.", 
     IIF(Fields!Type.Value = "CUN", "Customer Number", 
         IIF(Fields!Type.Value = "ANM", "Account Number", 
             IIF(Fields!Type.Value = "CID", "Client ID", ""))))

我们添加了更多“类型”

因此对于类型“ TKT”,我们现在有:“ TKT1”,“ TKT2”。对于类型“ CUN”,现在对于最后2个,我们具有“ CUN1”,“ CUN2,依此类推”。

我不熟悉使用IIF函数时如何指定多个值(类似于IN运算符)。

如果任何人都可以就如何完成此事分享一些看法,那就太好了。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可能最好先将此表达式转换为SWITCH语句,然后再进行处理。 SWITCH接受您需要添加的尽可能多的条件和结果配对。下面的表达式使您可以根据需要添加任意数量的检查,最后的配对true,""会将与switch语句不匹配的任何检查简单地设置为空白值。

=SWITCH(Fields!Type.Value = "TKT1", "Ticket No.",
        Fields!Type.Value = "TKT2", "Ticket No.",
        Fields!Type.Value = "CUN1", "Customer Number",
        Fields!Type.Value = "CUN2", "Customer Number",
        Fields!Type.Value = "ANM", "Account Number",
        Fields!Type.Value = "CID", "Client ID",
        [add additional pairings here],
        true, "")

另一种解决方案是在SSRS中使用Contains关键字。这将搜索字符串以找到特定的子字符串。您可以简单地将每个条件修改为以下条件,如果该字段包含该子字符串,则将返回true

Fields!Type.Value.Contains("TKT")