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了。