急啊,小数点前0被去掉(oracle)

telnese 发布于 2009/08/27 15:49
阅读 7K+
收藏 0

在plsql中,小数点前的0被去掉了如何解决?在网上查了资料还是没有解决。如select  num into v_num from t ,当num为小数且小于时,v_num赋值后小数点前的0被去掉了。如num=0.25,v_num赋值后变成.25,而不是0.25。求教高手们.

加载中
0
红薯
红薯

select DECODE(TRUNC(:decimal_number),
              0, REPLACE(TO_CHAR(:decimal_number),'.','0.'),
              TO_CHAR(:decimal_number)
             )
from dual;

 

使用to_char按格式转换
select to_char(0.00008, 'fm9999999990.000000000') from dual
结果:0.000080000

0
telnese
telnese

大哥,谢谢您帮忙。您的方法我刚试过了还是不行啊,就是在赋值后小数点前的0被去掉了,我也用过to_char(),substr()等,都没得出正确结果。大哥,您能试下吗?建个表,写个过程试下好吗?困扰了一两天了,也问了人都没搞定啊。

0
红薯
红薯

1. select to_char(num,'fm999999990.999999999') from t1_number;
2.
select decode(substr(num,1,1),'.','0'||num,num) from t1_number


详情请看 http://www.blogjava.net/wxqxs/archive/2008/10/29/238979.html

0
telnese
telnese

引用来自“红薯”的帖子

1. select to_char(num,'fm999999990.999999999') from t1_number;
2.
select decode(substr(num,1,1),'.','0'||num,num) from t1_number


详情请看 http://www.blogjava.net/wxqxs/archive/2008/10/29/238979.html

 谢谢!上面的方法在表中操作时可以的,但是在存储过程中,如果用上面的方法从表中取数再赋值就不行了,就是我前面说的小数点前0不见了。后来我尝试将赋值后的数据插入到临时表是可以的,但这样做觉得没意义。还请大哥多多帮忙,多谢!

0
虫虫
虫虫

你应该直接去国外oracle的论坛问。。。

0
红薯
红薯

引用来自“虫虫”的帖子

你应该直接去国外oracle的论坛问。。。

你就在 Oracle 上班,这个问题你得帮人家解决了

0
虫虫
虫虫

引用来自“telnese”的帖子

引用来自“红薯”的帖子

1. select to_char(num,'fm999999990.999999999') from t1_number;
2.
select decode(substr(num,1,1),'.','0'||num,num) from t1_number


详情请看 http://www.blogjava.net/wxqxs/archive/2008/10/29/238979.html

 谢谢!上面的方法在表中操作时可以的,但是在存储过程中,如果用上面的方法从表中取数再赋值就不行了,就是我前面说的小数点前0不见了。后来我尝试将赋值后的数据插入到临时表是可以的,但这样做觉得没意义。还请大哥多多帮忙,多谢!

你把问题具体描述一下,吧sql语句,存储过程贴出来,我帮你去邮件列表问问。

0
hymn
hymn

select  to_char(num,'0.0') into v_num from t

这种是可以显示前面的0的,就是v_num是varchar类型了

0
hymn
hymn

在sqlplus里面,执行 col a format 0.0就变了

0
hymn
hymn

但是这个col a format 0.0是sqlplus特有的命令

返回顶部
顶部