gpt4 book ai didi

sql-server-2005 - SQL 2005 Reporting Services 如果检查 null

转载 作者:行者123 更新时间:2023-12-04 17:29:12 26 4
gpt4 key购买 nike

在 SSRS 2005 中,我有一个表,其中有一个数据集链接到它。
我想检查一个字段的值是否为空,如果它不为空然后格式化数据以确保它有一个小数位并添加一个 % 符号等。

这是我在字段/列上的表达:

=iif(IsNothing(Fields!COL01.Value), "" ,Format(CDbl(Trim(Replace(Fields!COL01.Value, "%", ""))), "N1") + "%")

当数据为空时它似乎不起作用(如果有数据它工作正常)。报告显示,但该字段显示为#ERROR。

我认为它会检查两种情况是否有效,即使它为空。我正在尝试使用 if 语句来避免格式​​化空值。

最佳答案

SSRS 表达式使用 Visual Basic 进行计算,它通常对表达式中的所有操作数进行完整(即不是短路)计算,例如在 IIf(cond, truexp, falsexp) 中,除了 cond 之外,truexp 和 falsexp 都会被评估,并且无论 cond 的值如何都可能抛出。

由于 VB.NET 2.0 中似乎没有合并函数,您可能希望在报告的代码部分添加一个,例如从 Oracle 返回的十进制

Function Coalesce(fieldValue As Object, defaultValue As Decimal) As Decimal
If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then
Coalesce = defaultValue
Else
Coalesce = CDec(fieldValue)
End If
End Function

也可以定义通用函数,例如合并(TResult)。

关于sql-server-2005 - SQL 2005 Reporting Services 如果检查 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com