如何SQL查询这个excel表的重复名称列中的标题?

简介:使用Jet.OLEDB提供程序和SQL查询,我无法从Excel表中提取某些列。 原因可能是标题文本包含一些重音字符。 技术上可以参考这些列吗? 就像列KC12而不是使用标题的文本…

详细信息:其实,具体的Excel文档可以从http://www.sukl.cz/file/80129_1_1下载 – 文档名称是DistribuceLP_2015_01.xls (见后面的处方)。 它包含一些公开可用的统计数据,将被下载和提取。

下载并保存文件后,我确实提取了一些没有问题的列。

我有一个工具,它需要一个连接string,目标目录和一系列的SQL命令+目标表名。 它用提取的内容生成普通的旧DBF表。 具有变换描述的文本文件看起来像这样 – 所以你可以看到连接string和SELECT查询。 该表被重新命名为testingA

 connection:Provider=Microsoft.Jet.OLEDB.4.0;Data source=d:\download\DistribuceLP_2015_01.xls;Extended Properties="Excel 8.0;HDR=Yes;" outputdir:. ---------------- test SELECT [Období] AS obdo, [Typ odběratele] AS typodb, ATC7, [Kód SÚKL] AS kodsukl, [Název přípravku] AS nazev, [Doplněk názvu] AS baleni, [Držitel registračního rozhodnutí] AS drr, [Země] AS zeme, [Typ pohybu] AS pohyb, [Počet balení/M] AS pocbal, [Cena za balení bez obch. přirážky a DPH] AS cenabal, -- !!! [Celkem finance za všechna balení bez obch. přirážky a DPH] AS cena, -- !!! [Počet definovaných denních dávek/balení] AS dendavek, [Počet denních definovaných dávek/balení celkem] AS davek, [Způsob výdeje] AS vydej FROM [A$] 

它几乎工作。 如果我删除标有-- !!! ,提取进行得很好。 两个标记行会导致错误。 我怀疑重音字母ř ,或者可能是文本中的

你有类似的情况下的经验吗?

我相信你需要使用一个排除语调不敏感的sorting规则,因为sorting规则设置在目标数据库中可能会有所不同:

 SELECT [Období] COLLATE Latin1_general_CI_AI AS obdo, [Typ odběratele] COLLATE Latin1_general_CI_AI AS typodb, ATC7, [Kód SÚKL] COLLATE Latin1_general_CI_AI AS kodsukl, [Název přípravku] COLLATE Latin1_general_CI_AI AS nazev, [Doplněk názvu] COLLATE Latin1_general_CI_AI AS baleni, [Držitel registračního rozhodnutí] COLLATE Latin1_general_CI_AI AS drr, [Země] COLLATE Latin1_general_CI_AI AS zeme, [Typ pohybu] AS pohyb, [Počet balení/M] COLLATE Latin1_general_CI_AI AS pocbal, [Cena za balení bez obch. přirážky a DPH] COLLATE Latin1_general_CI_AI AS cenabal, -- !!! [Celkem finance za všechna balení bez obch. přirážky a DPH] COLLATE Latin1_general_CI_AI AS cena, -- !!! [Počet definovaných denních dávek/balení] COLLATE Latin1_general_CI_AI AS dendavek, [Počet denních definovaných dávek/balení celkem] COLLATE Latin1_general_CI_AI AS davek, [Způsob výdeje] COLLATE Latin1_general_CI_AI AS vydej FROM [A$]