고유 식별자를 얻기 위해 여러 열을 복합 키로 조인해야하는 두 테이블 간의 데이터 비교를 시도하고 있습니다. CTE를 사용하고 있으며 코드는 다음과 같습니다.
WITH SuburbDataTest AS (
SELECT *
, CAST(Address AS NVARCHAR(100))+' ' +CAST(LivingAddress AS NVARCHAR(2))
+ ' ' + CAST(StartDate AS NVARCHAR(11))+ ' ' +CAST(AddressTypeId AS NVARCHAR(1))
+ ' ' +CAST(SuburbId AS NVARCHAR(1))AS SuburbDataTestColumn
FROM [mig].[ConsumerAddressMigration]
WHERE SuburbId is NOT NULL
)
SELECT *
FROM SuburbDataTest staging
WHERE SuburbDataTestColumn IN (
SELECT Address+' ' +CAST(LivingAddress AS NVARCHAR(2))+ ' '+CAST(StartDate AS NVARCHAR(11))
+ ' ' +CAST(AddressTypeId AS NVARCHAR(1))+ ' ' +CAST(SuburbId AS NVARCHAR(1)) AS SuburbDataTestColumn
FROM [dbo].[tblConsumerAddress]
)
불행히도 나는
식을 데이터 형식 nvarchar로 변환하는 동안 산술 오버플로 오류가 발생했습니다.
어떤 아이디어?
이것은 숫자를 문자열로 변환 할 때 발생하며 문자열이 충분히 크지 않습니다. 이것이 문제라고 생각합니다.
CAST(SuburbId AS NVARCHAR(1))
SuburbId
가 9보다 큰 숫자 이면 오류가 발생합니다. 또는 값이 음수이면 동일한 오류가 발생합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다