2013-04-29 67 views
6

我想创建一个视图,该视图将显示由不同类型字段连接的两个表中的信息。一个字段是nvarchar,另一个是int。我知道我需要在另一种类型中转换一种类型,但不知道如何去做。 任何帮助将不胜感激。将nvarchar转换为int以便在视图中连接SQL表

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引擎将执行自动转换以进行比较。但是,如果可能决定将字符字段转换为整数 - 然后出现错误。

所以,只要投你的int字段为nvarchar:

cast(IntField as nvarchar(255)) 

长度不要紧,一nvarchar()比较。

在您的查询,您将要替换:

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)字段。 你能告诉我如何把代码放在一起吗? – 2013-04-29 15:42:50

+1

它效果很好。 谢谢你。我今天学到东西。 – 2013-04-29 15:51:15