Oracle中关于小数百分比,增加%后0消失的问题

需求:求小数转换为百分比

例子一: select round((2/99) * 100, 2) || '%' from dual;

 当商的值大于0.01时没有问题,但是当商小于0.01时:

例子二:select round((2/210) * 100, 2) || '%' from dual;

结果为.95%   0消失了.

原因:计算占比后拼接字符串,小于1的小数中,小数点前0不显示,尝试不进行拼接,0会正常显示:

解决方法:使用to_char进行转换

例子三:select to_char(round((2/210) * 100, 2),'fm999990.9999') ||'%'  from dual;

原文地址:https://www.cnblogs.com/yueguangshi/p/13300703.html