我有一个名为net_amount的列,它包含244,98之类的值。它是一个varchar列。当我尝试使用sum函数对它求和时,它只将244和跳过小数位相加。我尝试将其转换为十进制,如下所示:
select cast(net_amount as decimal) from mytable
这也会跳过小数位......任何想法可能出错?
谢谢!
答案 0 :(得分:3)
您可以使用REPLACE将逗号替换为点:
SELECT REPLACE('244,98', ',', '.') * 1
或者您可以像这样使用CAST:
cast(REPLACE(net_amount, ',', '.') as decimal(8,2))