web-dev-qa-db-ja.com

ビューのSQLテーブルを結合するためにnvarcharをintに変換します

異なるタイプのフィールドで結合された2つのテーブルからの情報を表示するビューを作成したいと思います。 1つのフィールドはnvarcharで、もう1つのフィールドは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
12

あなたのコードを見て、私はあなたが何をすべきかを言うことができません。

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
_
26
Gordon Linoff