Excel2019高级进阶:SQL应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2.2 查询表中的所有列

现有一工资表,如图3.12所示。此表和前例中的表不同之处在于多了一个合并单元格的表标题。如要通过SQL语句导入此表的全部数据,但不包括合并单元格的表标题,应如何实现?

图3.12 工资表

首先,如要查询表中的全部列,只需在SELECT后面将全部列名列出即可,但是此种方法对于列名过多的表来说太过烦琐。在SQL中引入了通配符*,用来代替一个表中的所有列。因此,查询表中所有列的语句可以写成:

SELECT *

FROM [表名$]

其次,在导入此表数据时,数据实际只存在于区域[A2:F12]中。因此,在FROM子句后的引用表中需要加上数据区域,即[工资表$A2:F12]。具体步骤如下:

步骤1:在“工资表.xlsx”工作簿中增加一个新的工作表“导入所有列”,并选中A1单元格。

步骤2:点击“数据”菜单,在“获取和转换数据”组中选择“现有连接”按钮,在打开的“现有连接”窗口中点击“浏览更多…”按钮,在弹出的“选取数据源”窗口中选取“工资表.xlsx”所在的目录,并选择此文件,然后点击“打开”按钮。在弹出的“选择表格”窗口中选择“工资表$”后点击“确定”按钮。

步骤3:在弹出的“导入数据”窗口中点击“属性”按钮,在此窗口中选择“定义”选项卡。清空“命令文本”框,键入如下SQL语句后,点击“确定”按钮。

SELECT *

FROM [工资表$A2:F12]

这与以下的语句在功能上是等价的:

SELECT 工资号,姓名,基本工资,绩效工资,扣除,实发工资

FROM [工资表$A2:F12] 

虽然两种SQL语句的写法在功能上是等价的,但第二种书写方式不仅烦琐,而且容易把列名写错,造成查询失败,而第一种方式则更加简洁且不易出错。

步骤4:点击“确定”后将会回到“导入数据”窗口,点击“确定”按钮后,查询后的数据将会导入到“导入所有列”表中,如图3.13所示。

图3.13 查询所有列结果

小结

通过SQL查询表中所有列时,既可以把列名全部列出,又可以使用通配符*来代替,语法如下:

SELECT *

FROM [表名$]

如果导入的数据是表的一部分,占用部分数据区域,则可把数据区域的位置信息放在“表名后”来指示,语法如下:

SELECT *

FROM [表名$数据区域]