0
当我在下面的代码中输入最后一个连接时,出现一条错误消息,指出“将varchar值3转换为数据类型int时转换失败。 (味精245,级别16,状态1,行1)有人可以帮助我吗?在一张表中,它在我想要与其他表中的另一个号码加入的号码前面有奇怪的字符。将Varchar 3转换为int
SELECT ca.fdorgunit AS Facility
, pt.fdmedrecnum AS Account
, ca.fddos AS DOS
, ad.fdaddr1 AS [Address]
, pe.fdssn AS SSN
FROM OPENQUERY (VISION, 'SELECT * FROM ci.tbcase') AS ca
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbpatient') AS pt
ON pt.id = ca.fdpatient
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbperson') AS pe
ON pt.fdperson = pe.fdid
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbaddress') AS ad
ON ad.id = pe.fdaddress
WHERE ca.fdcasestatus = 'Performed'
GROUP BY ca.fdorgunit, ca.fddos, pt.fdmedrecnum, pe.fdssn, ad.fdaddr1
你能请张贴的数据类型ad.id和pe.address? – Eli
您需要共享那些“奇怪的字符”行... – fhossfel
如果它是一个int值(不含“怪异字符”),您可以将pe.fdaddress强制转换为int。但是,如果fdaddress被假定为索引外键,那么该索引将不再工作(索引是针对原始varchar值的,而不是int)。你应该总是试着设计你的数据库以在你的表上拥有合适的主键和/或外键。 – RToyo