仅当货币不是 0.0000 时才投射 2 个小数值
Cast 2 decimal values only if currency is not 0.0000
我正在尝试打印
条件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,
如果你关心这些细节,那么你需要将结果转换为一个stirng:
(case when CAST([Money] AS NUMERIC(10,2)) = 0.00 then '0'
else cast(cast([Money] as numeric(10, 2)) as varchar(255))
end)
您不能拥有同时包含小数和整数类型的列。我建议只返回十进制值并在显示层(表单、报表、网页等)中设置格式
我正在尝试打印
条件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,
如果你关心这些细节,那么你需要将结果转换为一个stirng:
(case when CAST([Money] AS NUMERIC(10,2)) = 0.00 then '0'
else cast(cast([Money] as numeric(10, 2)) as varchar(255))
end)
您不能拥有同时包含小数和整数类型的列。我建议只返回十进制值并在显示层(表单、报表、网页等)中设置格式