【问题标题】:Add more values to expression using IIF使用 IIF 向表达式添加更多值
【发布时间】:2019-03-21 13:25:50
【问题描述】:

我正在寻求帮助来更新 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”类型,现在我们有“CUN1”、“CUN2”等最后 2 个。

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

如果有人能分享一些关于这是如何完成的信息,那就太棒了。

提前感谢您的帮助。

【问题讨论】:

  • 为了将来参考,您可以在 IIF 中添加带有 AND 或 OR 的其他条件(尽管在这种情况下,SteveO 使用 SWITCH 可能会更好)IIF(Fields!Type.Value = "TKT1" OR Fields!Type.Value = "TKT2", ... 不幸的是,它不像 IN 那样简单.

标签: reporting-services iif multiple-value


【解决方案1】:

在事情失控之前,您最好将此表达式转换为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")

【讨论】:

  • 我开始使用 OR 运算符编写表达式,但让我尝试一下 SWITCH 函数。谢谢!
  • @erasmocarlos 让我知道我的解决方案是否为您解决了问题,或者您是否需要更多帮助。总是乐于提供帮助。
  • 谢谢@Steve-o169,第一个推荐效果很好。
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 2022-01-14
  • 2019-01-29
相关资源
最近更新 更多