让Crystal Reports公式将数字字符串转换为值,但保留非数字空白/ null

Lap*_*han 5 null formula crystal-reports

我有一个字符串字段,主要包含数字十进制值,但有时包含"<0.10"或"HEMOLYSIS"等值.

我想使用公式将这些数值字符串转换为值,将非值留空(null).

if isNumeric({a_omgang.omg_resultat}) then
    toNumber({a_omgang.omg_resultat})
Run Code Online (Sandbox Code Playgroud)

对于所有非数字值,返回0,这使得难以计算例如平均值或平均值,或计算值的数量.(后者当然可以通过使用带有isNumeric评估公式的运行总计数来实现.)

有什么建议我如何让公式按我的意愿工作?

编辑:我希望该值为空(null),而不仅仅是非数字的可见性.

cra*_*aig 4

过去,我创建了一个返回 NULL 的 SQL 表达式:

-- {@DB_NULL}
-- Oracle syntax
(
SELECT NULL FROM DUAL
)
Run Code Online (Sandbox Code Playgroud)

 

-- {@DB_NULL}
-- MS SQL syntax
(
SELECT NULL
)
Run Code Online (Sandbox Code Playgroud)

然后我在公式中引用该字段:

// {@FormulaField}
If IsNumberic({table.field} Then
  ToNumber({table.field})
Else
  ToNumber({@DB_NULL})
Run Code Online (Sandbox Code Playgroud)

  • 尝试“SELECT NULL”。我无法访问 SQL Server,因此无法对此进行测试。 (2认同)