Sql server 在SQL Server 2008中将数据类型nvarchar转换为浮点时出错

Sql server 在SQL Server 2008中将数据类型nvarchar转换为浮点时出错,sql-server,Sql Server,mmax为数据类型nvarchar,值为 字符串,整数,十进制,值 我试图求17.50,35.00的和 我在where子句中避免使用字符串值 但并没有解决这个问题 抛出错误其中一个值无法转换为浮点值。您可能有一百万个可以转换的值,如果其中一个(例如,有字母O而不是0)您将收到该消息。字符串/Varchar值(带有逗号,如“10000”)通过IsNumeric()测试,但不强制转换/转换为数字类型而不会引发错误 您可以替换逗号并执行强制转换和求和操作: select sum(cast(mmax a

mmax
为数据类型
nvarchar
,值为 字符串,整数,十进制,值

我试图求17.50,35.00的和

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

但并没有解决这个问题


抛出错误

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

字符串/Varchar值(带有逗号,如“10000”)通过IsNumeric()测试,但不强制转换/转换为数字类型而不会引发错误

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

select sum(cast(mmax as float) 
from table

尝试先确定哪些值不能转换为浮点值,以便可以从选择中排除它们<代码>从ISNUMERIC(mmax)=0的表中选择mmax实际查询在sql 2005上运行,但在sql 2008上失败,但在给定的解决方案中解决了我的问题
select sum(cast(replace(mmax,',','') as float))
from tbl
where isnumeric(maxx)>0