2013-04-29 7 views
6

다른 유형 필드로 결합 된 두 테이블의 정보를 표시하는 뷰를 만들고 싶습니다. 한 필드는 nvarchar이고 다른 필드는 int입니다. 내가 다른 유형의 하나를 변환해야하지만 그것을 어떻게 해야할지 모르겠다. 도움을 주시면 대단히 감사하겠습니다.보기에서 SQL 테이블을 조인하기 위해 nvarchar를 int로 변환하십시오.

SELECT dbo.co.co_num, dbo.pck_hdr.weight, dbo.STR_ShipTrack.TrackingNumber 
    FROM dbo.co 
INNER JOIN dbo.pck_hdr ON dbo.co.co_num = dbo.pck_hdr.co_num INNER JOIN dbo.STR_ShipTrack ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1 

답변

15

코드를 보면 내가해야 할 일을 말할 수 없습니다.

SQL 엔진은 비교를 위해 자동 변환을 수행합니다. 그러나 문자 필드를 정수로 변환하기로 결정한 다음 오류가 발생할 수 있습니다.

cast(IntField as nvarchar(255)) 

길이는 중요하지 않습니다를 nvarchar() 비교 :

그래서, 단지 NVARCHAR하기 위해 INT 필드를 캐스팅. 귀하의 요청에

, 당신은 대체 할 것이다 :

ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1 

로 : 나는 불완전한 설명을 드려 죄송합니다

ON cast(dbo.pck_hdr.pack_num as nvarchar(255)) = dbo.STR_ShipTrack.Reference1 
+0

. dbo.pck_hdr.pack_num은 int이고 dbo.STR_ShipTrack.Reference1은 varchar (25) 필드입니다. 코드를 함께 넣어야하는 방법을 보여 주시겠습니까? –

+1

잘 작동했습니다. 고맙습니다. 나는 오늘 무언가를 배운다. –