【问题标题】:Conversion failed when converting the varchar value 'Id' to data type int将 varchar 值“Id”转换为数据类型 int 时转换失败
【发布时间】:2017-06-26 22:46:07
【问题描述】:

尝试运行我的 sql 查询时出现此错误...

将 varchar 值“Id”转换为数据类型时转换失败 诠释

SELECT *
FROM History
INNER JOIN Header
ON History.Id = Header.docId

请帮帮我:(

【问题讨论】:

    标签: sql sql-server type-conversion


    【解决方案1】:

    在您的Join 条件下,确定一列是Integer 类型,另一列是Varchar 类型。

    ON History.Id = Header.docId
    

    由于Int 的优先级高于varcharVarchar 列将隐式转换为Int

    因此将Int 列显式转换为varchar。

    ON History.Id = cast(Header.docId as varchar(50))
    

    我已将Header.docId 视为Int 类型,如果否,则将History.Id 转换为varchar

    【讨论】:

      【解决方案2】:

      尝试将 Id 列转换为 INT

      SELECT *
      FROM History
      INNER JOIN Header
      ON cast(History.Id AS int) = Header.docId
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-20
        • 2011-12-01
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多