如何格式化百分比?

时间:2019-02-09 05:24:22

标签: sql oracle plsql percentage sql-query-store

我需要格式化百分比的帮助。我格式化的最初原因是我希望将接近零的百分比显示为0.05%,而不是0.05%

所以我做到了:

IF (a.TOTAL <> 0 AND b.mkt <> 0) THEN
    v_perc := TO_CHAR(ROUND(100-( a.TOTAL*100/ b.mkt),2),'00.99') || '%';
END IF;

v_perc存储为varchar2(50),但是格式并不总是我需要的。

当百分比低于10%时。我得到08.52或00.35%。但是我想要一种输出格式为0.52%,5.32%,55%,0%,100%的格式。我尝试使用000.999,但是会得出000.000%。

1 个答案:

答案 0 :(得分:2)

您可以使用

TO_CHAR(<your_value>,'fm990D00','NLS_NUMERIC_CHARACTERS = ''.,''')

作为您的格式化模型。

它可以满足您的需求,最高为100100%)。除了百分比外,如果在其他情况下(例如11,115.54)需要更多数字,则可以将第二个参数转换为'fm999G990D00'