You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Cast或Round函数调整查询结果的数值显示格式?

数值格式转换:将0.00/0.05/0.10转为0/0.05/0.1

你的需求是去除末尾无意义的零和冗余小数点,单纯用ROUND函数无法直接实现(因为ROUND仅做四舍五入,没法动态适配不同的小数位数需求),需要结合类型转换或格式化函数处理,不同数据库的实现方式如下:

MySQL 实现

通过字符串处理去除末尾零和小数点:

SELECT TRIM(TRAILING '0' FROM TRIM(TRAILING '.' FROM CAST(your_column AS CHAR))) AS formatted_value
FROM your_table;

如果你的数值仅固定为0.00、0.05、0.10这三个,也可以直接转成浮点数(不会有精度问题):

SELECT CAST(your_column AS FLOAT) AS formatted_value FROM your_table;

SQL Server 实现

用FORMAT函数的通用格式自动去除末尾零:

SELECT FORMAT(your_column, 'G') AS formatted_value FROM your_table;

或指定最多保留两位小数的格式:

SELECT FORMAT(your_column, '0.##') AS formatted_value FROM your_table;

PostgreSQL 实现

使用TO_CHAR配合FM修饰符去除末尾零和小数点:

SELECT TO_CHAR(your_column, 'FM999.99') AS formatted_value FROM your_table;

或用正则替换处理字符串形式的数值:

SELECT REGEXP_REPLACE(CAST(your_column AS TEXT), '\.?0*$', '') AS formatted_value FROM your_table;

关于ROUND函数的说明

ROUND仅用于四舍五入,比如ROUND(0.10, 1)得到0.1、ROUND(0.00, 0)得到0,但ROUND(0.05, 1)会得到0.1(不符合你的需求),所以单独用ROUND无法覆盖所有场景,不如直接用格式化函数高效。

内容的提问来源于stack exchange,提问作者Hamed Tamadon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:53:17