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

7

当我尝试运行SQL查询时,出现了以下错误:

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

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

请帮助我 :(
2个回答

14

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

ON History.Id = Header.docId

由于Int的优先级高于Varchar,所以Varchar列将被隐式转换为Int

因此,请显式地将Int列转换为Varchar

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

如果没有考虑过Header.docIdInt类型,则将History.Id转换为varchar


1
尝试将Id列转换为INT类型。
SELECT *
FROM History
INNER JOIN Header
ON cast(History.Id AS int) = Header.docId

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接