2つの異なるデータベースのアカウント番号を比較して、アカウントが両方に存在することを確認しています。一方のデータベースのアカウントフィールドはnvarchar
で、もう一方のデータベースはvarchar
です。私はキャストを行って両方をキャストし、varchar(12)
それらに参加して一致するものがない場所を確認します。12文字未満のアカウント番号がある場合は、一致していないと見なされます。各フィールドの余分な文字が問題の原因であると思いますか?
table1 - accountnumber(nvarchar(255))
table2 - accountnumber(varchar(20))
select * from
table1
left outer join table2 on table2.accountnumber = table1.accountnumber
この1つの例では、両方のテーブルに番号12345678のアカウントがありますが、結合は機能していません。データ型の不一致なのか、空白なのか、それとも他の何かなのかわかりません。
--追加--table2のデータは、実際にはvarchar2(12バイト)として格納されているOracleデータベースからのものであることを追加する必要があります。それをSQLServerデータベースにインポートし、varchar(20)として保存します。これが違いを生むかどうかはわかりません。