当前位置: 首页 > 面试题库 >

SSRS IIF语句在值非数字时显示#Error

丁和歌
2023-03-14
问题内容

我有一个可以是十进制或字符串的值。样本

0.41
0.91
"0 / 2"
0.75

我当前的表达式是=
IIF(IsNumeric(Fields!currentRate.Value),Format(CDBL(Fields!currentRate.Value),“
P2”),Fields!currentRate.Value)

这将正确返回以百分比格式设置的小数,但是字符串仅显示#Error。我尝试过弄乱IIF语句中的各种逻辑,而改用Switch。但是,小数总是正确显示为百分比,而字符串仅显示#Error。

是否可以在同一列中同时显示数字值和字符串值,同时保持数字值的格式?


问题答案:

该错误与CDbl试图将字符串列转换为数字时函数引发异常有关。是的,我知道您首先要检查它是否为数字,但IIF不是语言构造,它是一个 函数,
并且作为函数,它会先评估所有参数,然后再将其传递给函数。这意味着即使一个参数将被丢弃,True和False参数也会被计算CDbl,并且在对字符串进行计算时会抛出错误。

尝试该Val功能。它具有在传递非数字数据时不引发错误的优点-尽其所能将其转换为数字。

=IIF(IsNumeric(Fields!currentRate.Value), Format(Val(Fields!currentRate.Value), "P2"), Fields!currentRate.Value)


 类似资料:
  • 问题内容: 问:在单词中显示数字值,输出应如下所示 而且,我仍然不知道该查询如何解决上述输出问题。 这是做什么的?任何人对此查询有任何想法吗? 问题答案: 那么查询如何工作?好吧,这是为什么: 如果查看查询to_date(:number,’j’)的最内部分,则``榡’‘或J是儒略日(Julian Date)(公元前4713年1月1日),基本上该日期已用于天文学研究。 因此,to_date(:num

  • 问题内容: 我有一个使用双打的简单计算,但是得到了意外的结果,我不明白为什么? 如果输入2.99,我得到的结果是.. 问题答案: 在双精度(或浮点数)运算时,不能精确表示十进制值。改用BigDecimal。 编辑(2) 这里的例子: 输出:

  • 问题内容: 我有一个声明为bit的属性:(是或否)。 例如: =>它会显示:1或0 我想显示:分别为1和0的“有效”和“无效”。 如何在SELECT语句中添加IF ELSE语句? 问题答案: 对于SQL Server,可以使用 CASE 语句:

  • 我正在寻找一个简单和可逆的方法来表示一个整数的Julia字符串(例如密码学)。明确地说,我考虑的不是像“123”这样的整数的字符串表示,而是像“hello”这样的任意字符串表示。表示不需要是可读的,但它需要容易地反向回到唯一的字符串(所以不是哈希)。它不需要高效;我只是在找尽可能简单的东西。(此外,如果它只适用于小字符集,例如小写罗马字母,也很好。) 一种简单的方法是到一个字符向量中,每个字符解析

  • 我有一个数组包含玩家的名字,我想按照数组的顺序显示每个问题中玩家的名字,例如arrnames['mark','john','jay'],我想和问题1的mark,问题2的john一起显示。 这是我正在尝试的,但我只得到数组中的最后一个值,我如何修复它?

  • 我有一个数组包含玩家的名字,我想按照数组的顺序显示每个问题中玩家的名字,例如arrnames['mark','john','jay'],我想和问题1的mark,问题2的john一起显示。 这是我正在尝试的,但我只得到数组中的最后一个值,我如何修复它?