oracle 求百分比,例如:a/b*100=0.12,连接百分号(a/b*100)||'%',结果则变成.12%,想要显示 0.12%,怎么办

也就是保留百分比前面那个0,请问SQL怎么写?备注a,b数据类型为float类型,想将百分比结果保存为varchar2... 也就是保留百分比前面那个0,请问SQL怎么写?备注a,b数据类型为float类型,想将百分比结果保存为varchar2 展开
 我来答
psychic0111
推荐于2018-03-05 · TA获得超过999个赞
知道小有建树答主
回答量:463
采纳率:100%
帮助的人:223万
展开全部
to_char(a/b*100,'fm999999990.999999999')||'%'

函数:to_char(数字,格式),格式小数点前面一位是零。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
carlxu2010
2013-02-05 · 超过10用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:29.1万
展开全部
to_char(a/b*100,'09.999'),表示整数2位,小数部分3位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjy198518
2013-02-06 · TA获得超过867个赞
知道小有建树答主
回答量:777
采纳率:80%
帮助的人:569万
展开全部
select case when a/ b * 100 < 1 then '0' || to_char(a / b * 100) || '%' else to_char(a/b*100)||' % ' end from 表名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2013-02-05 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部
好像没什么好方法哈
只能对于0.12%和12%这样的分别处理,然后合并数据

比如:两列a和b
以下数据
a b
1 140
1 14

select (a/b)*100||'%' from 表名 where (a/b)*100>=1
union all
select replace((a/b)*100||'%','.','0.') from 表名 where (a/b)*100<1;

暂时还没想到其他更好的,想到再说吧
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式