SSRS中的嵌套iif语句

时间:2017-08-17 15:57:51

标签: sql reporting-services visual-studio-2015 type-conversion conditional-operator

我试图在SSRS中编写一个嵌套的iif语句,它将varchar值(数字(isnumeric))转换为整数并保持文本不变。我还想确定单元格中的值是否为“0”,它将返回空格或“”。请参阅下面我正在使用的代码。任何关于为什么非数字文本显示为#Error的见解将非常感激。谢谢!

{{1}}

1 个答案:

答案 0 :(得分:1)

使用SWITCH语句而不是嵌套IIF并首先测试非数字。 SWITCH语句在第一个返回true的表达式处停止。

=SWITCH (
    ISNUMERIC((Fields!O1_Parent_Line_Item_ID.Value), CInt(Fields!O1_Parent_Line_Item_ID.Value), 
    Fields!O1_Parent_Line_Item_ID.Value = "0", ""
    True, Fields!O1_Parent_Line_Item_ID.Value
    )

上面的语句将依次测试每个表达式,直到找到一个返回true的表达式。如果是数字,请转换为int。如果是" 0"返回并清空字符串。如果两者都返回false,那么最后一个表达式将始终返回true,因此您将获得原始值。

请注意,0数字值将返回0而不是""因为它们显然是数字的,所以第一个表达式会捕获它。