在乘法表达式中字段为空时发生错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在乘法表达式中字段为空时发生错误相关的知识,希望对你有一定的参考价值。
我遇到了一个奇怪的问题:当我使用一个简单的表达式时:
=iif(Fields!Length.Value = "", "empty", Fields!Length.Value)
然后一切正常,我在报告中得到了我的价值或“空”这个词。
如果我将表达式改为长度的2倍,那么我的“空”仍将出现。
=iif(Fields!Length.Value = "", "empty", (Fields!Length.Value + Fields!Length.Value))
但是当我乘以时,我的“空”转到#Error,而其余的数据工作得很好......
=iif(Fields!Length.Value = "", "empty", (Fields!Length.Value * Fields!Length.Value))
任何的想法?我发现这种行为非常非常奇怪。
答案
您的问题是IIF每次都会评估真假结果,即使错误结果不会在最终输出中使用。所以它正在努力做到
'' * ''
当你的值是一个空字符串。
你可以通过使用VAL来解决这个问题,这将首先返回字符串的数值,就像这样。
=IIF(Fields!Length.Value = "", "empty", (VAL(Fields!Length.Value) * VAL(Fields!Length.Value)))
以上是关于在乘法表达式中字段为空时发生错误的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2008环境中,字段为decimal(18,2),当输入为空时,会报错。