Insert Select不会将NVARCHAR转换或强制转换为Float
我正在尝试使用insert select语句将所有数据从一个表移动到另一个表。。源表中的两列的数据类型为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
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