3

我的表的一列中有许多字段。如果 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))

那也没有用。

4

2 回答 2

2

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

方法一:TSQL

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

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

方法二:SSRS

COALESCESSRS中没有等价物。您可以使用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。

于 2015-08-10T16:42:07.123 回答
1

我建议你需要的是 ISNULL。

示例用法如下:

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

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

于 2015-08-10T15:48:50.237 回答