gpt4 book ai didi

sql - 错误无法将数据类型 nvarchar 转换为 float

转载 作者:行者123 更新时间:2023-12-04 11:28:03 27 4
gpt4 key购买 nike

我已经搜索了这个很棒的论坛并在谷歌上搜索,但无法解决这个问题。

我们有两张 table (相信我,我与这些 table 无关)。两个表都有一个名为 eventId 的列.

但是,在一张表中,数据类型为 eventIdfloat在另一个表中,它是 nvarchar .

我们正在从 table1 中选择哪里eventI定义为 float并将该 ID 保存到 table2哪里eventId定义为 nvarchar(50) .

由于数据类型不一致,我们在转换数据类型时遇到错误 nvarcharfloat .

在不乱搞数据库的情况下,我想投 eventId摆脱这个错误。

任何想法我在下面的代码中做错了什么?

SELECT 
CAST(CAST(a.event_id AS NVARCHAR(50)) AS FLOAT) event_id_vre,

最佳答案

问题很可能是因为某些行有 event_id那是空的。有两种方法可以解决这个问题:

  • 转换您的 floatnvarchar ,而不是相反 - 这种转换总是会成功的。这里唯一的问题是文本表示是否不同 - 例如,带有 float 的表-as- nvarchar使用较少的十进制数字,或
  • 添加条件以在转换前检查空 ID - 如果某些事件 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,

    关于sql - 错误无法将数据类型 nvarchar 转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26765604/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com