SQLSERVER 不显示小数后多余的00
时间: 2025-06-05 18:32:02 浏览: 10
### SQL Server 中去除小数点后多余零的方法
在 SQL Server 中处理数值数据时,有时会遇到希望去除小数部分不必要零的情况。以下是几种有效方法来实现这一目标。
#### 方法一:使用 `CONVERT` 和 `CAST`
通过转换数据类型的手段可以有效地控制输出格式:
```sql
SELECT CONVERT(varchar, CAST(0.0090 AS decimal(18, 4)), 1) -- 结果为 "0.009"
```
这种方法利用了 `CAST` 函数先将数值转成指定精度的小数类型,再用 `CONVERT` 转换成字符串形式并应用特定样式参数[^3]。
#### 方法二:基于字符操作函数的解决方案
对于更复杂的情形,可以通过组合多个字符串处理函数达成目的:
```sql
DECLARE @value nvarchar(max);
SET @value = '123.450';
WITH cte AS (
SELECT CASE WHEN RIGHT(REVERSE(@value), CHARINDEX('.', REVERSE(@value)) - 1) NOT LIKE '%[^0]' THEN LEFT(@value, LEN(@value) - PATINDEX('%[^0]%', REVERSE(@value)) + 1)
ELSE @value END as result_value
)
SELECT * FROM cte;
```
此脚本首先定义了一个变量存储待处理的数据;接着创建公共表表达式(CTE),其中包含了逻辑判断语句用于区分不同情况下的处理方式——当且仅当小数位全由‘0’组成时才执行截断动作[^1]。
#### 方法三:直接计算法
如果只是简单地做除法运算而不需要保留过多的小数位,则可以直接让数据库引擎自动调整最合适的表示方式:
```sql
SELECT 5000 / 10000.0; -- 返回 0.5
SELECT 5500 / 10000.0; -- 返回 0.55
SELECT 5550 / 10000.0; -- 返回 0.555
SELECT 5555 / 10000.0; -- 返回 0.5555
```
这种方式依赖于浮点数算术规则,在大多数情况下能够满足需求,并保持较高的性能效率[^4]。
阅读全文
相关推荐


















