web-dev-qa-db-ja.com

varchar値「Id」をデータ型intに変換するときに変換が失敗しました

SQLクエリを実行しようとしたときにこのエラーが発生しました...

Varchar値「Id」をデータ型intに変換するときに変換が失敗しました

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

私を助けてください :(

5
jhovyn

Join条件では、1つの列がIntegerタイプで、もう1つの列がVarcharタイプであることを確認してください。

ON History.Id = Header.docId

Intvarcharよりも優先順位が高いため、Varchar列は暗黙的にIntに変換されます

したがって、Int列を明示的にvarcharに変換します。

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

私はHeader.docIdIntタイプと見なしました。そうでない場合は、History.Idvarcharに変換します

10

Id列をINTにキャストしてみてください

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