Oracle中ROUND()函数保留两位小数未补零,求正确SQL写法
解决Oracle中平均票价固定两位小数格式化问题
在Oracle数据库里,ROUND()函数仅做数值四舍五入处理,不会强制保留末尾的零。要输出42.50、55.00这类固定两位小数的格式,得用TO_CHAR()函数配合指定格式模型:
核心SQL示例
SELECT TO_CHAR(AVG(ticket_price), 'FM999999999.00') AS ticket_price FROM your_table_name;
细节说明
AVG(ticket_price):先完成平均票价的数值计算;TO_CHAR(..., 'FM999999999.00'):把数值转为指定格式的字符串:.00:强制保留两位小数,位数不足时自动补零;FM:消除格式转换后可能出现的前导空格,保证输出整洁。
如果需要结果以数值类型返回(而非字符串),可以嵌套CAST()转换:
SELECT CAST(TO_CHAR(AVG(ticket_price), 'FM999999999.00') AS NUMBER(10,2)) AS ticket_price FROM your_table_name;
多数测试场景下,直接用TO_CHAR输出格式化后的字符串就能满足要求。
内容的提问来源于stack exchange,提问作者Rakshitha Kundapur
相关产品推荐
相关产品推荐

