在SQL Server 2008中将数据类型nvarchar转换为float时出错

问题描述 投票:-2回答:2
select sum(cast(mmax as float) 
from table

mmax的数据类型为nvarchar,值为string,int,decimal,value

我试图总和的价值17.50,35.00。

我在where子句中避免字符串值

但没有解决这个问题

抛出错误

sql-server
2个回答
0
投票

带有逗号(如“10,000”)的String / Varchar值传递IsNumeric()测试,但不会在不引发错误的情况下转换/转换为数字类型。

您可以替换逗号并执行强制转换和求和操作:

select sum(cast(replace(mmax,',','') as float))
from tbl
where isnumeric(maxx)>0

0
投票

其中一个值无法转换为浮点数。您可能有一百万个可以转换的值(例如,有一个字母O而不是0),您将获得该消息。

© www.soinside.com 2019 - 2024. All rights reserved.