【发布时间】:2017-03-15 01:23:44
【问题描述】:
我已经阅读了很多文章并尝试了几种方法但没有任何运气。
我正在导入表 A(其成本为 char 到表 B(需要 float)。
我尝试了什么:
--cast([Cost] as float)
-- cast(ISNULL([Cost],0) as float)
-- NULLIF(CAST(ISNULL([Cost],0) as float), 0)
convert(float,replace([Cost],',','') )[Cost]
样本数据
FINAL Freight Cost
1248
1248
193.79
201.56
1475.71
97.86
97.86
97.86
125.49
97.86
447.83
450
492.99
450
我仍然收到此错误:
将数据类型 nvarchar 转换为浮点数时出错
更新:
另外,我不确定如何根据答案修改现有代码;
现有的代码结构
1. creat table B
2. insert into B () select[DestAddress], [COST] from A
我也试过CAST(test AS FLOAT) AS CastedValue
为什么是float?数据集将被发送到需要float 的优化算法。感谢您指出这一点。
【问题讨论】:
-
不替换点试试?
-
将 [FINAL Freight Cost] 替换为 LTRIM(RTRIM([FINAL Freight Cost]))
-
用你自己的话说你想做什么?
-
我的猜测是您的源中有一行具有一些实际上不是有效数字的值。当人们将数字存储为字符时,这种情况很常见。
-
@Shnugo 试过了。 100k 行中有一个“n/a”。解决了。谢谢!!!!!!
标签: sql sql-server tsql types casting