字符串到双精度或十进制
String to double or decimal
如何将字符串转换为双精度或小数?在 Exact Online (REST API) 中,我尝试在字符串字段中使用十进制值进行计算。例如 items.netprice + items.notes
。字段 items.notes
包含十进制值。
尝试将 cast
和 convert
与 float
和 decimal
结合使用。
我会使用如下解决方案:
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。如果认为有必要,您可能希望将其更改为错误。
如何将字符串转换为双精度或小数?在 Exact Online (REST API) 中,我尝试在字符串字段中使用十进制值进行计算。例如 items.netprice + items.notes
。字段 items.notes
包含十进制值。
尝试将 cast
和 convert
与 float
和 decimal
结合使用。
我会使用如下解决方案:
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。如果认为有必要,您可能希望将其更改为错误。