2017-03-02 5 views
1

varchar列の結合に問題があります。特殊文字と先行ゼロを持つvarcharのSQL JOIN

Excelデータから製品コードでSQLデータを更新するつもりですが、Twr_Kodvarcharであり、これはExcelデータと結合する唯一の方法です。

先行ゼロがある場合は、varcharに変換する際に問題があります。

select CDN.Towary.Twr_Kod, excel.Twr_Kod 
from CDN.Towary 
left join openrowset('Microsoft.ACE.OLEDB.12.0', 
        Excel 8.0;Database=C:\excel\towary.xlsx;', 
        'select * from [Arkusz1$]') excel 
        on cast(CDN.Towary.Twr_Kod as varchar) = cast(excel.Twr_Kod as varchar) 

enter image description here

私はvarchar列に参加するための良い解決策ではありません知っているが、キャストが変換されていないなぜ助けてください必要があります。

+0

'mysql'または' sql-server'あなたの質問に正しくタグを付けてください。 – Tanner

+0

申し訳ありません、変更されました。唯一のSQLサーバー – AdamWoxTron

+0

先行ゼロでいくつかの例の値を与えて、問題を強調表示してください、あなたはサンプルデータにそれを示していません – Tanner

答えて

0

問題は、Excelの列に混合データ型が含まれているためです。 csvファイルをインポートするとき、またはデータ型が混在するExcelファイルの場合、非支配型をnullで置き換えます。 (使用OLEDBまたはAce.Oledb)

回避策

あなたOPENROWSETのたconnectionStringにIMEX=1;を追加し、ダミーの最初の行containningテキストが詳細

を取得するために Import error using Openrowsetで私の答えをフォロー

値を追加

+0

とても混乱していますが、作業しています。どうもありがとうございます。あなたは私の命を救った:D – AdamWoxTron