结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
在Excel表格中当数据量行数不太多的时候,使用筛选、高级筛选、函数等查询数据,很灵活,也很方便;一旦数据量比较大,比如上万行、几十万行、甚至更多时,再使用筛选、高级筛选、函数等Excel的运行效率就会明显下降,并且有可能导致软件崩溃。
这个时候,如果在Excel中能像在数据库中使用SQL语句查询一样,效率问题应该会有较大的改观。那么,问题来了,在Excel中对于二维表,能使用SQL语句吗?如何使用呢?
近期,刚好有同事需要在Excel中处理大量的结构化数据,看他一会儿Excel、一会儿SQL Server的操作,也不是很方便。于是,想通过下面一个具体示例,来介绍一种在Excel中使用SQL语句的方法。
1、数据源
在“data”表中,有这样一个比较常见的二维表结构(演示数据,大概仅几百行)。
第一行是表头(字段),从第2行开始向下都是行记录。
2、建立数据连接
数据—其他来源—来自Microsoft Query
选中Excel Files*,点击“确定”
点击“确定”按钮。
3、查询向导设置
3.1 选中表和字段(即列)
点击下一步:
3.2 设置筛选条件
如果不需要筛选,可以点“下一步”跳过。
3.3 设置关键字(KEY值)和排序
4、将连接结果导入Excel
选中sheet1表的A1单元格作为目标单元格,点击“确定”。
数据源将以“表”的形式显示在sheet1中,如图:
一顿操作猛如虎,那么问题来了,SQL语句到底在哪写呢?…
5、找到SQL语句编写的地方
依次点击:数据—全部刷新—连接属性
SQL语句如下:
SELECT `data$`.移动类型, `data$`.日期, `data$`.物料, `data$`.物料凭证, `data$`.数量, `data$`.库存地点, `data$`.移动类型文本, `data$`.工厂, `data$`.订单, `data$`.订单价格单位, `data$`.订单单位, `data$`.批次, `data$`.采购订单, `data$`.货币, `data$`.供应商FROM `C:\Users\lixg\Desktop\SQL\测试.xlsx`.`data$` `data$`ORDER BY `data$`.物料凭证
6、编写自己的SQL语句并执行
在上图的“命令文本”窗口,SQL语句可以自行编写(编写方法和Sql Server、mySql等数据库原则上都一样,可能部分语法上有些微不同)
我们编写一个简单的查询语句,将数据源data表中的的移动类型311的结果查询出来:
SQL语句如下:
SELECT * FROM `C:\Users\lixg\Desktop\SQL\测试.xlsx`.`data$` `data$`where `data$`.移动类型 = '311'
执行结果如下图:
以上只是一个简单的示例,如果需要执行复杂的查询,可以参照这种方法,在命令文本栏位中编写自己的查询语句即可。关于SQL语句的编写在这里就不做介绍了。
有兴趣的朋友,动手试试吧?
/20200423