我试图将两个字段连接成一个,第一个是varchar,第二个是int。我收到了“将数据类型varchar转换为数据类型为int的转换失败”错误,并且我不熟悉sql需要自己解决这个问题的原因。转换失败将varchar转换为Int - 使用Concat
的代码如下:
CONCAT(polpolicynumber, ' - ',转换(VARCHAR(10),poltermsequence))作为REFVALUE
我也不知道为什么它试图将其转换到一个int。保持它作为一个varchar是我想要的。
任何帮助将不胜感激。
非常感谢!
下面是情况下,整个代码,可以帮助:
declare @rundate date = '10-02-2015'
select @rundate as RunDate, 'FINYS' as Source, 'Agency' as ReferenceTable, 'AgcID' as RefID, agcid as RefValue,
agcname as LastName, '' as MiddleName, '' as FirstName
from COHPROD_Policy..agency
where AgcExpirationDate is NULL or agcexpirationdate > @rundate
union
select @rundate as RunDate, 'FINYS' as Source, 'Agent' as ReferenceTable, 'AgtID' as RefID, agtid as RefValue,
agtname as LastName, '' as MiddleName, '' as FirstName
from COHPROD_Policy..agent
where AgtTerminationDate is NULL or AgtTerminationDate > @rundate
union
select @rundate as RunDate, 'FINYS' as Source, 'Policy' as ReferenceTable, 'PolNumber' as RefID,
concat(polpolicynumber, ' ', 'Term', ' ', convert(nvarchar(10),poltermsequence)) as RefValue,
isnull(connamelast,'') as LastName, isnull(connamemiddle,'') as MiddleName, isnull(connamefirst,'') as FirstName
from COHPROD_Policy..policy p
join COHPROD_Policy..ContactXref cox on coxpolid = polid
join COHPROD_Policy..Contact con on conid = coxconid
join cohprod_policy..policystatus on pospolid = polid
where pospolicystatus = 'active'
你确定'polpolicynumber'是'VARCHAR'吗? – Lamak
是的。奇怪,对吧?当你问这个问题时再次检查。它说: 列PolPolicyNumber(varchar,null) – RJames
是你所有的代码? – Lamak