0

如何将字符串转换为双精度或小数?在 Exact Online (REST API) 中,我尝试使用字符串字段中的十进制值进行计算。例如items.netprice + items.notes。该字段items.notes包含十进制值。尝试将castand与andconvert结合使用。floatdecimal

4

1 回答 1

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
       )

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

于 2017-07-14T08:38:21.053 回答