将nvarchar转换为int以便在视图中连接SQL表

Cha*_*nis 11 sql int nvarchar inner-join sql-view

我想创建一个视图,它将显示由不同类型字段连接的两个表的信息.一个字段是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
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 27

看看你的代码,我无法告诉你应该做什么.

SQL引擎将进行自动转换以进行比较.但是,如果可能决定将字符字段转换为整数 - 然后得到错误.

所以,只需将int字段转换为nvarchar:

cast(IntField as nvarchar(255))
Run Code Online (Sandbox Code Playgroud)

长度与nvarchar()比较无关.

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

ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1
Run Code Online (Sandbox Code Playgroud)

有:

ON cast(dbo.pck_hdr.pack_num as nvarchar(255)) = dbo.STR_ShipTrack.Reference1
Run Code Online (Sandbox Code Playgroud)