ExcelVBAADOSQL入门教程004:SQL中的Excel表
1上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下:SELECT字段名FROM表名当时我们说,FROM关键词指明了要获取字段信息的表的名称。倘若数据源是Excel表格,则需要在表名后增加美元符号,并用中括号包起来,例如Sheet1……事实上,上述例子是SQLI
Excel对工作表引用最简单的一种情况,也就是整表引用;此外还有单元格区域引用、跨工作簿引用表等。所以我们今天就再来聊一下SQL语句中的Excel表。2区域成表Excel工作表和数据库的数据表有很多不同之处,最显著的地方在于,数据库的数据表是由行列构成的,而Excel工作表则是由一个又一个单元格构成的,且这些单元格拥有独特的地址表述方法(A1和R1C1),它们还可以构成数据相连的单元格区域,例如A2H8。于是问题来了,如果我们只需要使用SQL语言计算某张Excel工作表的部分区域该怎么表述呢?这种问题是很常见的。比如,很多人的Excel标题行并不是处于表格的第一行,而是第2行……如下图:此时,我们希望SQL可以使用A2F列的单元格区域作为表,而不是整个Excel工作表,这样我们更容易使用字段名处理数据……对吧?(我转头看看书柜,书柜不说话……)
f再比如,一张表里存在两个或更多个“表”……这句话什么意思呢?见下图。图中所示的表格中,既存在一份“教师表”,又存在一份“学生表”;如果我们只希望SQL引用计算A2D8的教师表数据……呃,请把刀放下,君子动手不动刀…………好伐,Excel中的SQL其实是支持将工作表的单元格区域作为“表”使用的。上图所示的问题,SQL可以写成:SELECT姓名学科FROM数据表A2D8查询结果如下:而第1种情况,我们知道数据开始于A2单元格,但不知道结束于F列的哪个单元格,SQL可以写成:SELECT姓名爱好FROM学生表A2F另外,如果我们需要SQL引用计算表格DG整列的数据:SELECTFROM学生表DG总结以上几种Excel工作表区域的表述方式,也就是,工作表名称美金符号相对引用状态下的单元格地址,最后使用中括号包起来。就酱紫。本节小贴士:学生表A2F,我们说该语句可以引用从A2至F列最后存在数据的单元格区域,但这是有一个限制条件的,即非自连接状态。所谓自连接是指SQL应用于链接自身的工作簿。自链接状态下,A2F的表达方式最多是A2F65536行;倘若此时需要的引用行超过65536行,请使用整表模式。3跨工作簿的表一个众所周知的问题是,Excel函数在处理跨工作薄数据时很是疲态,除r