我正在尝试将varchar(500)格式的[标准价格]转换为浮动,但我收到错误'错误'将varchar转换为浮动'。
以下是我的询问:
select IM.Material, CONVERT(float, Replace(Replace(IM.[Standard price], '"', ''), ',', '')) as colname from ItemMaster as IM
[标准价格]字段包含(双引号)和(逗号)因此我在转换为浮动之前用空格替换它们。
是否有任何替代方法需要尝试使用SQL Server 2008?
答案 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