sql - 如何格式化百分比?

标签 sql oracle plsql percentage sql-query-store

我在格式化百分比方面需要帮助。我格式化的最初原因是我想将接近零的百分比显示为 0.05% 而不是 .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%。

最佳答案

你可以使用

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

作为您的格式化模型。

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

关于sql - 如何格式化百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603489/

相关文章:

sql - 在不违反主键和唯一约束的情况下更改表结构

java - 想要一个 SQL 查询来了解当前 JDBC 连接命中的 Oracle RAC 节点

SQL Server 使用 FOR XML PATH 按组连接多行

sql - 外键可以为空吗?

oracle - 存储过程异常处理

c# - 如何在 Simple.Data 中正确执行预加载?

java - 尽管与应用程序失去连接,Oracle 是否仍保持查询在后台运行?

java - 无法使用 Oracle 数据库连接在 Spring 中加载配置类

oracle - 如何获取 Oracle 数据库 IP?

oracle - 将 PL/SQL 脚本转换为存储过程