将varchar(500)转换为在sql server v2008中浮动时出错

时间:2016-11-28 05:38:41

标签: sql sql-server

我正在尝试将varchar(500)格式的[标准价格]转换为浮动,但我收到错误'错误'将varchar转换为浮动'。

以下是我的询问:

select IM.Material, CONVERT(float, Replace(Replace(IM.[Standard price], '"', ''), ',', '')) as colname from ItemMaster as IM

[标准价格]字段包含(双引号)和(逗号)因此我在转换为浮动之前用空格替换它们。

是否有任何替代方法需要尝试使用SQL Server 2008?

2 个答案:

答案 0 :(得分:0)

SELECT CASE ISNUMERIC(Replace(Replace([column_name], '"', ''), ',', '')) WHEN 1 THEN CAST((Replace(Replace([column_name], '"', ''), ',', ''))   AS float) ELSE null END
from table as IM

Select Try_convert(float,Replace(Replace([column_name], '"', ''), ',', '')) as [Varchar to float]
from table_name

答案 1 :(得分:0)

如果存在,则在字符串中,ISNUMERIC可以返回1,但不能直接转换为float 你可以先转换成金钱。

SELECT ISNUMERIC('1,123,34'),CONVERT(MONEY,'1,123,34')--,CONVERT(float,'1,123,34')

---返回---- 1 112334.00