select sum(cast(mmax as float)
from table
mmax
的数据类型为nvarchar
,值为string,int,decimal,value
我试图总和的价值17.50,35.00。
我在where子句中避免字符串值
但没有解决这个问题
抛出错误
带有逗号(如“10,000”)的String / Varchar值传递IsNumeric()测试,但不会在不引发错误的情况下转换/转换为数字类型。
您可以替换逗号并执行强制转换和求和操作:
select sum(cast(replace(mmax,',','') as float))
from tbl
where isnumeric(maxx)>0
其中一个值无法转换为浮点数。您可能有一百万个可以转换的值(例如,有一个字母O而不是0),您将获得该消息。