Insert Select不会将NVARCHAR转换或强制转换为Float

Insert Select不会将NVARCHAR转换或强制转换为Float,select,insert,sql-server-2012,type-conversion,Select,Insert,Sql Server 2012,Type Conversion,我正在尝试使用insert select语句将所有数据从一个表移动到另一个表。。源表中的两列的数据类型为NVARCHAR,目标表的数据类型为Float 我曾尝试使用cast和convert,但我一直收到以下消息: 将数据类型nvarchar转换为浮点时出错 代码: 在没有看到数据的情况下,我猜测列可能有一些空数据,这将抛出此错误,因此代码应该是空的 INSERT INTO Destination_Table ([SCAC] ,[Date] ,[Orgin] ,[Destinati

我正在尝试使用insert select语句将所有数据从一个表移动到另一个表。。源表中的两列的数据类型为
NVARCHAR
,目标表的数据类型为
Float

我曾尝试使用
cast
convert
,但我一直收到以下消息:

将数据类型nvarchar转换为浮点时出错

代码:


在没有看到数据的情况下,我猜测列可能有一些空数据,这将抛出此错误,因此代码应该是空的

INSERT INTO Destination_Table
  ([SCAC]
  ,[Date]
  ,[Orgin]
  ,[Destination Low Zip]
  ,[Destination High Zip]
  ,[Class]
  ,[Minimum Charge]
  )
SELECT [SCAC]
  ,[Date]
  ,[Origin]
  ,cast(ISNULL([Destination Low Zip],0)   as float)
  ,cast(ISNULL([Destination High Zip],0)  as float)
  ,[Class]
  ,[Minimum Charge]
FROM source_table
如果你想要空值,那么

INSERT INTO Destination_Table
  ([SCAC]
  ,[Date]
  ,[Orgin]
  ,[Destination Low Zip]
  ,[Destination High Zip]
  ,[Class]
  ,[Minimum Charge]
  )
SELECT [SCAC]
  ,[Date]
  ,[Origin]
  ,NULLIF(CAST(ISNULL([Destination Low Zip],0)   as float), 0)
  ,NULLIF(CAST(ISNULL([Destination High Zip],0)  as float),0)
  ,[Class]
  ,[Minimum Charge]
 FROM source_table

从TRY\u CONVERT(float,[Destination Low Zip])为空或TRY\u CONVERT(float,[Destination High Zip])为空的源表中选择*
是否返回任何内容?
INSERT INTO Destination_Table
  ([SCAC]
  ,[Date]
  ,[Orgin]
  ,[Destination Low Zip]
  ,[Destination High Zip]
  ,[Class]
  ,[Minimum Charge]
  )
SELECT [SCAC]
  ,[Date]
  ,[Origin]
  ,NULLIF(CAST(ISNULL([Destination Low Zip],0)   as float), 0)
  ,NULLIF(CAST(ISNULL([Destination High Zip],0)  as float),0)
  ,[Class]
  ,[Minimum Charge]
 FROM source_table