我试图在SSRS中编写一个嵌套的iif语句,它将varchar值(数字(isnumeric))转换为整数并保持文本不变。我还想确定单元格中的值是否为“0”,它将返回空格或“”。请参阅下面我正在使用的代码。任何关于为什么非数字文本显示为#Error的见解将非常感激。谢谢!
{{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而不是""因为它们显然是数字的,所以第一个表达式会捕获它。