【问题标题】:Add N/A if all fields are blank SSRS Expression如果所有字段均为空白,则添加 N/A SSRS 表达式
【发布时间】:2015-08-10 15:33:21
【问题描述】:

我的表格的一列中有多个字段。如果 field1 是空白显示 field2 等等,我有它,我现在要做的是如果所有字段都是空白显示 N/A。

我在下面尝试了什么;

=IFF(ISNothing(Fields!field1.Value) & IIF(IsNothing(Fields!field2.Value),"N/A",VbCRLF & Fields!field2.Value))

这有时显示的是 field1N/A。

谁能指出我正确的方向?

谢谢,

更新 1:

我也试过了;

=IFF(ISNothing(Fields!field1.Value),"N/A",Fields!field1.Value & IIF(IsNothing(Fields!field2.Value),"N/A",VbCRLF & Fields!field2.Value))

那也没用。

【问题讨论】:

    标签: reporting-services ssrs-2012 ssrs-expression


    【解决方案1】:

    有两种方法可以做到这一点。您可以在 SQL Server Query 或 SSRS 中处理它

    方法一:TSQL

    您可以使用COALESCE 函数查找第一个非空值。如果全部为 NULL,则将其替换为 N/A

    SELECT COALESCE(Field1, Field2, Field3, 'N/A') AS newFieldValue, ....
    FROM myTable.....
    WHERE ....
    

    方法二:SSRS

    SSRS 中没有 COALESCE 等效项。您可以使用iifswitch 来模拟逻辑。

    =SWITCH(NOT(ISNothing(Fields!field1.Value)), Fields!field1.Value, 
           NOT(ISNothing(Fields!field2.Value)), Fields!field2.Value,
           NOT(ISNothing(Fields!field3.Value)), Fields!field3.Value,
           1=1, "N/A")
    

    还要记住,如果字段中有空格,ISNULL 函数将不会处理它。在这种情况下,您还需要使用类似的逻辑来处理空格。

    HTH。

    【讨论】:

      【解决方案2】:

      我建议你需要的是 ISNULL。

      示例用法如下:

      ISNULL(su.address1_line2, 'N/A')

      这将在该列中找到空值并在报告中将其替换为 N/A

      【讨论】:

      • 您好,感谢您的回复。所以我可以去 ISNULL(Field1.value,Field2.value, "N/A")
      • 嗨,afaik,您需要按照上面的示例分别将 idk isnull 函数包装在每个变量周围,例如ISNULL(field1,'N/A') 然后是 ISNULL(field2,'N/A')。这样做是用指定的第二个参数替换空值,在这种情况下不适用,尽管它可能是一个空字符串。请注意替换字符串周围的单引号语法。当您想要对字符串应用进一步的转换时,我发现它是一种有用的方法。例如级联。如果您连接多个字符串并且其中一个为空,则通常会将生成的字符串值更改为空。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多