想要从字符格式转换为带小数的数字格式

时间:2014-07-09 07:56:19

标签: sql oracle

要将字符格式(00001000000)转换为10000.00。请帮帮我。

我已经尝试了

select to_number('00012300','9999999999.99','nls_numeric_characters = ''.,''') from dual

这个脚本但它只能显示12300,实际上我想查看为123.000

2 个答案:

答案 0 :(得分:1)

好吧,您可以使用

将您的值转换为数字
select to_number('00012300') from dual;

似乎你除以100.

所以

select to_number('00012300') / 100 from dual;

如果您想显示两位小数,请再次使用格式

返回varchar
select to_char(to_number('00012300') / 100, '999999D99')  from dual;

答案 1 :(得分:0)

您可以使用的是一种类似的解决方法:

CAST(round(0000000111100 / 100, 2) AS numeric(38, 2))

所以你要做的就是将你的值除以2位小数,然后除以100,然后将其转换成剩下2个数字的数字。

如果您的值是字符串,只需将其转换为之前的整数。

和平