目录

源数据表,提取表中所有列的数据?

解决方案

    SQL语句中的通配符

   别名


源数据表,提取表中所有列的数据

名次

球队名




积分

进球

失球

1

西班牙

6

0

1

18

8

2

2

荷兰

6

0

1

18

12

6

3

德国

5

0

2

15

16

5

4

乌拉圭

3

2

2

11

11

8

5

阿根廷

4

0

1

12

10

6

6

巴西

3

1

1

10

9

4

7

加纳

2

2

1

8

5

4

8

巴拉圭

1

3

1

6

3

2

9

日本

2

1

1

7

4

2

10

智利

2

0

2

6

3

5

11

葡萄牙

1

2

1

5

7

1

12

美国

1

2

1

5

5

5

13

英格兰

1

2

1

5

3

5

14

韩国

1

1

2

4

6

8

15

斯洛伐克

1

1

2

4

5

7

16

墨西哥

1

1

2

4

4

5

17

科特迪瓦

1

1

1

4

4

3

18

斯洛文尼亚

1

1

1

4

3

3

19

南非

1

1

1

4

3

5

20

澳大利亚

1

1

1

4

3

6

21

瑞士

1

1

1

4

1

1

22

丹麦

1

0

2

3

3

6

23

希腊

1

0

2

3

2

5

24

塞尔维亚

1

0

2

3

2

3

25

新西兰

0

3

0

3

2

2

26

意大利

0

2

1

2

4

5

27

尼日利亚

0

1

2

1

3

5

28

法国

0

1

2

1

1

4

29

阿尔及利亚

0

1

2

1

0

2

30

洪都拉斯

0

1

2

1

0

3

31

喀麦隆

0

0

3

0

2

5

32

朝鲜

0

0

3

0

1

12

 

解决方案

    使用代表所有列和所有行的字段名或者通配符,获取整个南非世界杯最终排名表的所有数据。

   1  通过OLE DB方法找到外部数据源,保留“选择表格“对话框中对名称的默认选择,单击“确定”按钮,激活“导入数据”对话框,再单击“属性”按钮,在弹出的“连接属性”对话框中勾选“打开文件时刷新数据”复选框,然后单击“定义”选项卡,清空“命令文本“框中原有的内容。
    2  在“命令文本”框中输入以下SQL连接语句:

SELECT *
FROM [sheet1$]

或者输入

SELECT 名次,球队名,胜,负,积分,进球,失球
FROM [sheet1$]

或者输入

SELECT [sheet1$].*
FROM [sheet1$]

或者输入

SELECT A.*
FROM [sheet1$] A

    单击“确定”按钮返回“导入数据”对话框,指定返回的数据查询位置为现有工作表的“$A$1",然后单击“确定”按钮,即可得到所有列的数据。

    SQL语句中的通配符

    通配符*在SQL语句里代表所有行及所有列,可以起到简化SQL语句的作用。有时候,源数据表中某些列或行被隐藏起来,导致显示的列名和实际表中使用的列名有所不同,使用通配
符*提取所有行及列则不需要担心这个问题。
    因为本例中源数据表的列字段不多,将所有的列字段列举出来并不麻烦,即从源数据表中提取每一个列字段名,可获取所有行及所有列的数据,如第二个语句表示形式。
    对于第三个语句表达方式,主要是通配符*的前面指定了获取的数据来源于指定的工作表,工作表名称与通配符*之间需要用句号(.)进行连接。
    第四个语句表达方式中,[sheet$] A表示将sheet1命名为A,工作表名称的长度过长,会导致编写的SQL语句的可读性不强,而别名可以简化工作表的缩写,善用别名可以培养好的使用习惯。

   别名

    别名主要是为了简单标注一个表。在多表查询的情况下,如果工作表的名称比较长,并且多个表中存在相同的字段,为了简单标注不同的表的相同栏位,可以添加别名。