如果所有字段都为空,则添加 N/A SSRS 表达式
Add N/A if all fields are blank SSRS Expression
我的 table 的一栏中有多个字段。我有它,如果 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))
那也没用。
我建议你需要的是 ISNULL。
示例用法如下:
ISNULL(su.address1_line2, 'N/A')
这将在该列中找到空值并在报告中用 N/A 替换它们
有两种方法可以做到这一点。您可以在 SQL 服务器查询或 SSRS
中处理它
方法一:TSQL
您可以使用 COALESCE
函数查找第一个非空值。如果全部为 NULL
,则将其替换为 N/A
SELECT COALESCE(Field1, Field2, Field3, 'N/A') AS newFieldValue, ....
FROM myTable.....
WHERE ....
方法二:SSRS
SSRS 中没有 COALESCE
等效项。您可以使用 iif
或 switch
来模拟逻辑。
=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")
还要记住如果字段中有space,它不会被ISNULL
函数处理。在这种情况下,您还需要使用类似的逻辑来处理空 spaces.
HTH.
我的 table 的一栏中有多个字段。我有它,如果 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))
那也没用。
我建议你需要的是 ISNULL。
示例用法如下:
ISNULL(su.address1_line2, 'N/A')
这将在该列中找到空值并在报告中用 N/A 替换它们
有两种方法可以做到这一点。您可以在 SQL 服务器查询或 SSRS
中处理它方法一:TSQL
您可以使用 COALESCE
函数查找第一个非空值。如果全部为 NULL
SELECT COALESCE(Field1, Field2, Field3, 'N/A') AS newFieldValue, ....
FROM myTable.....
WHERE ....
方法二:SSRS
SSRS 中没有 COALESCE
等效项。您可以使用 iif
或 switch
来模拟逻辑。
=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")
还要记住如果字段中有space,它不会被ISNULL
函数处理。在这种情况下,您还需要使用类似的逻辑来处理空 spaces.
HTH.