请问sql显示百分比小数点的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问sql显示百分比小数点的问题相关的知识,希望对你有一定的参考价值。

比如我select round(a1/a2*100,2)||'%' from table的时候 如果a1/a2=0.005的话,就会显示 .5% 我想显示为0.5%该怎么办啊 就是如果值过小,百分比就不会出现小数点前面的0,怎么办

参考技术A select
round(a1/a2*100,2)||'%'
from
table
改成
select
to_char(round(a1/a2*100,2),'fm999990.00')||'%'
from
table
其中FM表示去掉空格,999990.00分别代表整数位数和小数位数是几位

Bug记录Oracle中小数点前面的0不显示的问题

项目场景

在一次将列表数据导出到Excel中的实现过程中,列表数据有个比例的字段,要求导出到Excel中该字段的数据要以百分数的形式进行显示。


问题描述

后台查询列表数据的时候,SQL语句我是这样进行拼接的(下面SQL为模拟SQL)。经过测试发现,最终导出到Excel中的数据该字段小数点前面的0丢失了。

select t.ratio  * 100 || '%' from  tmp_table t;

于是,在Plsql中执行该Sql语句发现

原因分析

这是由于Oracle中存在隐形转换,当与字符串进行拼接时自动调用了to_char函数,并且to_char在做转化时,如果你不指定格式,它就按它的格式去做转化,结果就把0给转不见了,所以在做转化时要给定格式。

解决方案

在进行隐形转换之前把小数进行字符串转换后再进行拼接,最终把SQL修改为下面的方式:

select to_char(t.ratio * 100,'fm990.0000')  || '%' from tmp_table t;

以上是关于请问sql显示百分比小数点的问题的主要内容,如果未能解决你的问题,请参考以下文章

delphi sql查询结果小于1,转换成百分比后不显示小数点前面的0,比如0.1%,显示结果就是.1%.

js数字转换成百分比显示

SQL中如何让百分比后面保留2位小数?

SQL中将数据字段变为百分数

请问在JAVA中我用BigDecimal来计算百分比,但是由于不能整除的原因,有些百分比相加不等于100%,该怎么办

请问在c语言中如何输出百分数?