乐于分享
好东西不私藏

在Excel中查询SQL Server数据库中的信息

在Excel中查询SQL Server数据库中的信息

“不打开源文件进行查询”的推文发表后,有一位湖南的网友说他的源文件不是Excel文件,而是SQL Server数据库,是否可以在Excel中设置关键字,对某字段进行查询获得结果,而不是每次都打开SSMS查询后再复制粘贴到Excel中。如果Excel直接从SQL Server数据库获取数据需要每次都打开Query查询修改条件。

要实现在Excel单元格中写条件,从SQL Server库中查询包含关键字的内容并返回结果,可以使用Query中的空白查询来实现。这里以当前电脑[district]数据库中的[五级行政区]表来演示实现过程

先看一下这个表中的数据,假设要从“村”列中查询包含指定关键字的记录。

Step 1:建新一个Excel文件,在单元格A1中输入以下内容 

="Select * from 五级行政区 where 村 like '%"&A2&"%'" 

然后将想要查询的关键字放在A2单元格,这里输入青岛。表示查询村名中包含“青岛”二字的记录。

Step 2:选中A1单元格,将其定义为名称“SQL语句

Step 3:点击数据获取数据自其它源空白查询,新建一个空白查询

Step 4:点击高级编辑器,清空原有内容,输入以下内容(注意大小写):

let  查询=Excel.CurrentWorkbook(){[Name="SQL语句"]}[Content]{0}[Column1],  源=Sql.Database(".","district",[Query=查询])in  源

点击完成结束输入。这里的Name=”SQL语句双引号中内容就是刚才定义的名称,如果你定义的名称为其它名字,这里要做相应改动;Sql.Database(“.”,”district”…)1个双引号中的.表示当前服务器,通常不需要改动,第2个双引号中的district是数据库名称,需要根据实际情况更改数据库名称。

Step 5:在弹出的警告信息中点击继续,在接下来的窗口中勾选“忽略此文件的隐私级别检查。忽略隐私级别可能会向未经授权的用户公开敏感数据或机密数据”,再点击保存。这样就查询到了所需要的数据记录。

Step 6:点击关闭并上载,将查询到的信息回传到Excel工作表中。

Step 7:更改Sheet1A1单元格关键字,就可以进行新的查询,缺点就是数据无法自动更新,需要点击一下数据选项卡的全部刷新才会更新。

现在将第一行查询语句隐藏起来,保留A2单元格的关键字行,就大功告成了。不知道是否能够满足湖南的网友的需求。


【相关阅读】

            不打开源文件进行查询


Excel私房菜,有质量的公众号