首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle将字符串更改为十进制

问Oracle将字符串更改为十进制
EN

Stack Overflow用户
提问于 2021-04-13 13:18:23
回答 2查看 94关注 0票数 0

我需要把字符串转换成小数。

所以字符串值是: 89,333,22.2345

所以我想保留所有的十进制位,并将其转换为: 8933322.2345。

我尝试了以下查询:

从dual中选择to_number(替换(nvl(89,333,22.2345),0),'‘);

这把它打成了893322。但我想得到所有小数的结果:

如果我尝试运行这个查询:

代码语言:javascript
复制
select to_number((replace(nvl(89,333,22.2345),0),',',''),'9999.99') from dual;

它会抛出错误。

EN

回答 2

Stack Overflow用户

发布于 2021-04-13 13:23:22

试试这个:

代码语言:javascript
复制
select to_number('89,333,22.2345','99,999,99.9999') from dual;
票数 0
EN

Stack Overflow用户

发布于 2021-04-13 13:37:56

我想你是把这个数字作为一个参数。否则你为什么要使用nvl。然后我看到您所需要的查询将类似于

代码语言:javascript
复制
select to_number(replace(nvl('89,333,22.2345','0'),',','')) from dual;

你的代码是错误的:

由于apostrophes

  • nvl

  • 是一个varchar,所以它必须放置在
  1. 参数之间,参数除以逗号。而且有一个关闭的括号太多了

(89,333,22.2345),0) -> nvl(‘89,333,22.2345,0)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67075676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档