0

我有一个名为 net_amount 的列,它包含 244,98 之类的值。它是一个 varchar 列。当我尝试使用 sum 函数对其求和时,它仅对 244 求和并跳过小数位。我尝试将其转换为十进制,如下所示:

select cast(net_amount as decimal) from mytable

这也跳过了小数位......知道可能出了什么问题吗?

谢谢!

4

1 回答 1

3

您可以使用 REPLACE 将逗号替换为点:

SELECT REPLACE('244,98', ',', '.') * 1

或者你可以像这样使用 CAST:

cast(REPLACE(net_amount, ',', '.') as decimal(8,2)) 
于 2013-03-07T09:02:12.313 回答