字符串为double或decimal

时间:2017-07-14 07:04:15

标签: exact-online invantive-sql invantive-control

如何将字符串转换为double或decimal?在Exact Online(REST API)中,我尝试使用字符串字段中的小数值进行计算。例如items.netprice + items.notes。字段items.notes包含小数值。 使用castconvertfloatdecimal结合使用。

1 个答案:

答案 0 :(得分:1)

我会使用类似的解决方案:

select case
       when regexp_replace(c, '[^0-9.]', '', 1, 0, 'g') = c
       then to_number(c)
       else null
       end       
from   ( select '123.45' c
         from   dual@datadictionary
         union all
         select '123invalid.45' c
         from   dual@datadictionary
       )

case regexp_replace确保非数字返回为null。如果认为有必要,您可能希望将其更改为错误。