나는 필드에 "INT에 VARCHAR 변환 오류"얻고있다 Q1_c
및 Q2_c
.
해당 필드는 CHAR(1)
이고 해당 필드의 값은 1,2,3,4,5 또는입니다 U
.하지만이있는 경우 변환되지 않으므로 U
의 값을 U
0과 같은 다른 값으로 변경하려고합니다. 또한 시도 CAST(a.q2_c as varchar(1)) = 'U'
했지만 작동하지 않습니다. 나는 사용해야 INT
나 VARCHAR()
? 나는 또한 사용하여 시도 CONVERT
대신에 CAST
.
ALTER VIEW [dbo].[vCDCP_rptInfantImprove]
as
select distinct
IND.tb_cdcp_individuals as Individuals_IndividualID
, A.[tb_cdcp_individuals] as ATQInfant_IndividualID
, A.CreateDate as ATQInfant_CreateDate
, CAST(a.q1_c as varchar(3)) as A_Q1
, CAST(a.q2_c as varchar(3)) as A_Q2
---Infant Sum
, Sum(isnull(cast(a.Q1_c as int),0)) + Sum(isnull(cast(a.Q2_c as int),0)) as InfantSum
---Change U to 0
, case when CAST(a.q1_c as int) = 'U' then 0 else 0 end as Unknown1
, case when CAST(a.q2_c as int) = 'U' then 0 else 0 end as Unknown2
from DBO.tb_cdcp_ATQInfant a
left join DBO.tb_cdcp_individuals ind on a.[tb_cdcp_individuals] = ind.[tb_cdcp_individuals]
where ind.agegroup_c = 'C'
group by IND.tb_cdcp_individuals, A.tb_cdcp_individuals, A.CreateDate
, a.q1_c
, a.q2_c
GO
몇 가지 다른 방법으로이 문제를 해결할 수 있습니다.
필드가 문자 형식이므로 'u'를 '0'으로 바꾼 다음 int로 변환합니다.
CAST(Replace(q1_c,'u','0') as int)
또는 새 계산 된 필드를 만들려면 정수 필드를 직접 만들 수 있습니다.
Case when q1_c='u' then 0 else CAST(q1_c as int) end as q1_c_calc
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다