varchar上的SQL JOIN,带有特殊字符和前导零

时间:2017-03-02 09:17:26

标签: sql sql-server excel openrowset

我在加入varchar列时遇到问题。

我将按产品代码更新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)

node-csv-parser

我知道加入varchar列并不是一个好的解决方案,但它是必要的,所以请帮助 cast 不转换。

1 个答案:

答案 0 :(得分:0)

问题是因为您的Excel列包含混合数据类型。 导入具有混合数据类型列的csv文件或excel文件时,它将使用null替换非显性类型。 (使用Oledb或Ace.Oledb)

解决方法

IMEX=1;添加到您的openrowset连接字符串并添加包含文本值的虚拟第一行

按照Import error using Openrowset的回答获取更多详情