将excel doc中的名称列表映射到查找表中的ID的最快方法?

时间:2010-09-13 22:01:27

标签: sql-server excel sql-server-2008

对于我的一个项目,我在下拉列表中显示一个县列表(此列表来自包含所有县的查找表)。客户刚要求我将其限制为他们选择的子集。该子集是在一个只包含名称的excel电子表格中提供给我的(见下文):

alt text

我正试图找出最快的方式将我们的每一个映射到原始查找表中的相应ID。客户端无法向我提供这些ID。这里的名字与我表格中的名字相匹配(案例除外)。

这很可能只是一次性的事情。

有人可以建议一种快速的方法将这些值放入查询中,这样我就不用手动了吗?

当我说快,我不是在谈论处理速度,只是最快的完成时间,这导致我使用任何可用的工具获得相应的ID。

注意:我知道我可能在获得答案所需的时间内手动完成此操作,但我想知道以备将来参考。

2 个答案:

答案 0 :(得分:2)

您可以使用

对另一个Excel工作表执行外部数据查询
SELECT countryname, countryid FROM countries

然后使用VLOOKUP将ID输入客户提供的表单

=VLOOKUP(A1,Sheet2!$A$1:$B$200,2,FALSE)

有关在Excel 2007中创建外部数据表的信息,请参阅http://excelusergroup.org/blogs/nickhodge/archive/2008/11/04/excel-2007-getting-external-data.aspx。请跳至“其他来源”部分。

答案 1 :(得分:1)

  1. 将列表放在文本文件中。编写一个powershell脚本,它将获取该文件的内容,然后查询您的数据库以输出密钥。这是一个粗略粗略的例子。

    get-content c:\ list.txt | ForEach-Object {invoke-sqlcmd -E -query“select blah blah where county =”_ $} |格式表

  2. 如果您有权访问SSIS,则可以在excel源和表之间进行连接。

  3. 您可以将Excel工作表加载到临时表中,以利用所有SQL查询知识。

  4. 我相信(and yes it is true)SQL可以从电子表格中创建链接服务器。然后你就加入了,你就完成了。

相关问题