首页 > 解决方案 > 仅当货币不是 0.0000 时才转换 2 个十进制值

问题描述

我正在尝试打印

条件 1:如果货币显示为 0.00,则去掉小数点 (.00)

Ex: 0.00 -> 0

条件 2:如果货币显示为大于 0.00,则保留小数点到 2 位(所以,######.00)

12.46 -> 12.46 
0.00 -> 0
13.96 -> 13.96

我尝试了以下方法,但 CAST 不起作用:

CASE 
WHEN CAST([Money] AS NUMERIC(10,2)) = 0.00 THEN CAST([Money] AS INT)
ELSE CAST([Money] AS NUMERIC(10,2)) END BankPile, 

标签: sqlsql-servercase-when

解决方案


如果您关心这些细节,那么您需要将结果转换为搅拌:

(case when CAST([Money] AS NUMERIC(10,2)) = 0.00 then '0'
      else cast(cast([Money] as numeric(10, 2)) as varchar(255))
 end)

推荐阅读