Oracle百分比计算:如何将结果保留1位小数?
要将PERCENTAGE字段保留1位小数并显示为带百分号的格式,可以通过以下两种常用方法修改你的Oracle查询:
方法一:使用ROUND函数四舍五入后拼接百分号
先通过ROUND函数将计算结果四舍五入到1位小数,再用||拼接百分号:
SELECT STUDENT_NAME, TOTAL, GRAND_TOTAL, (CASE WHEN GRAND_TOTAL <> 0 THEN ROUND(TOTAL / GRAND_TOTAL * 100, 1) || '%' END) AS PERCENTAGE FROM VW_ALL_STUDY_DETAILS;
方法二:使用TO_CHAR函数直接格式化
通过TO_CHAR的格式串直接控制小数位数并添加百分号,同时用FM修饰符去除结果中的多余空格:
SELECT STUDENT_NAME, TOTAL, GRAND_TOTAL, (CASE WHEN GRAND_TOTAL <> 0 THEN TO_CHAR(TOTAL / GRAND_TOTAL * 100, 'FM999999999.0"%"') END) AS PERCENTAGE FROM VW_ALL_STUDY_DETAILS;
两种方法都能实现需求:
- 方法一逻辑直观,先处理数值精度再拼接符号;
- 方法二通过格式化字符串一次性完成,适合需要精细控制显示格式的场景。
内容的提问来源于stack exchange,提问作者Konda Reddy
相关产品推荐
相关产品推荐

