oracle to_char格式化

本文介绍在PLSQL中使用TO_CHAR函数格式化数值数据的方法,特别是针对小数点前带有0的情况,如0.23。通过调整TO_CHAR的格式参数,解决了直接获取数据时0丢失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


   FOR re IN (SELECT t.province,t.diffVlaueContain0,t.diffCountContain0,t.diffVlaueNotContain0,t.diffCountNotContain0 FROM ARREPORT_SHIPTO_DIFF_TEMP t order by to_number(t.diffCountNotContain0) desc,to_number(t.diffVlaueNotContain0) desc)  LOOP 
     
       --拼接需要邮件展示的table中的tr
      v_tr_str := v_tr_str || '<tr><td>' || re.province ||'</td><td>' || to_char(re.diffVlaueContain0,'fm9999999990.000') ||'</td><td>' || re.diffCountContain0 ||'</td><td>' || to_char(re.diffVlaueNotContain0,'fm9999999990.000') ||'</td><td>' ||re.diffCountNotContain0 ||'</td></tr>';
   END LOOP;

 

在进行取值的时候,数据0.23这种,如果直接使用re.diffVlaueContain0  ,那么获取的数据就是.23,最前边的0不见了,在plsql中测试,使用to_number好用,但是在此处用to_number还是不好用,最后还是想想用to_char格式化吧。

 

在格式参数FMT中,前面加上FM代表去掉返回结果中的前后空格和0。

'fm9999999990.000'   小数点前的一个0保证了,0.23这种格式可以正确显示,

开始的使用使用的是'fm9999999990.999',但是0的话就显示成了0.

所以最后改成了统计将0显示为0.000了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值