我已经搜索了这个很棒的论坛并在Google周围搜索,但无法解决。
我们有两个表(相信我,我与这些表无关)。这两个表都有一个名为的列eventId。
eventId
然而,在一个表中,数据类型eventId就是float和在另一个表中,这是nvarchar。
float
nvarchar
我们从选择table1这里eventI被定义为float和保存该ID写入table2其中eventId被定义为nvarchar(50)。
table1
eventI
table2
nvarchar(50)
作为数据类型descrepancy的结果,我们得到错误转换数据类型nvarchar来float。
在不弄乱数据库的情况下,我想强制使用eventId摆脱该错误。
有什么想法我在下面的代码做错了吗?
SELECT CAST(CAST(a.event_id AS NVARCHAR(50)) AS FLOAT) event_id_vre,
该问题最有可能是因为某些行的event_id行为空。有两种方法可以解决此问题:
event_id
第二种解决方案如下所示:
SELECT case when a.eventid <> '' then cast(cast(a.event_id as nvarchar(50)) as float) ELSE 0.0 END AS event_id_vre,