无法在SQL Server中将VARCHAR转换为FLOAT

时间:2019-07-28 17:05:24

标签: sql-server

我正在使用SQL Server2017。我需要将名为Financial Impact的列中的数据类型从VARCHAR转换为FLOAT。我尝试了几种在网上找到的解决方案,但都无济于事。我不断收到一条错误消息:

  

信息8114,第16级,状态5,第5行
  将数据类型varchar转换为float时出错。

查询:

SELECT
    SUM(CAST(REPLACE([Financial Impact],',','')
FROM
    TableName
WHERE
    ISNUMERIC([Financial Impact]) > 0
GROUP BY
    [Main Location Number]

1 个答案:

答案 0 :(得分:0)

请确保表的[Financial Impact]列中只能包含数字值,或者varchar()数据类型中只能包含零

如果列具有任何blank值或NULL值,则必须使用CASH ... WHEN ... THEN... ENDISDBNULL()

否则,您可以使用以下查询

select sum (convert(float, [Financial Impact])) as myData, [Grpcolumn] from @ActivityLog
where convert(float, [Financial Impact]) > 0
group by [Grpcolumn]

DEMO