当前位置: 代码迷 >> SQL >> Excel中使用SQL时的表引述规则
  详细解决方案

Excel中使用SQL时的表引述规则

热度:32   发布时间:2016-05-05 12:01:19.0
Excel中使用SQL时的表引用规则

 

Excel可以获取多种数据库中的数据,在表的引用规则方面也存在一定的差异,在书写SQL查询语句时需要引起注意。下面将介绍几种常用表的引用方法。

1Excel工作表引用规则

Excel工作表在引用时需要将其包含在方括号内“[]”,同时需要在其工作表名称后面加上“$”符号,如:

SELECT * FROM [Sheet1$]

如果要引用工作表中的部分区域,则可以在“$”符号后面添加区域限定。例如,下面的语句表示引用Sheet1A1:A3区域。

SELECT * FROM [Sheet1$A1:C3]

如果需要在当前工作簿中引用其他工作簿中的工作表,则需要在工作表名称前面加上文件名称限定,文件名包含在方括号内,文件名与工作表之间使用“.”分隔。如:

SELECT *

FROM [D:\MyBooks\8\产品信息new.xlsx].[Sheet1$]

2SQL Server表引用规则

在引用SQL Server数据库表时,无需将表名称包含在方括号内,名称后面也不需要添加“$”符号。自SQL Server 2005开始引入了架构管理方式,如果在一个数据库中有多个对象具有相同的名称,则应使用架构名称来限定表名称。例如,假设Schema1Schema2架构都含有一个名为TableX的表,而下面的语句明确指定要引用Schema1中的TableX表:

SELECT *

FROM Schema1.TableX

如果所引用的表不是在当前数据库中,则应当以数据库和架构来限定对象名称。例如,下面的语句明确指定要引用AdventureWorks数据库中的Purchasing.ShipMethod表:

SELECT *

FROM AdventureWorks.Purchasing.ShipMethod

如果FROM子句中所指定的表和视图存在相同的列名,则应当使用表或视图名称来限定列名。例如,下面语句所生成的结果集合由Customer表的CustomerID列和Store表的Name列组成,在指定连接条件时,为CustomerID分别使用了Sales.CustomerSales.Store限定。

SELECT Sales.Customer.CustomerID, Sales.Store.Name

FROM Sales.Customer

  JOIN Sales.Store

    ONSales.Customer.CustomerID = Sales.Store.CustomerID

WHERE Sales.Customer.TerritoryID = 1

3Access表引用规则

与引用SQL Server数据库表相同,引用Access表时也无需将表名称包含在方括号内,名称后面也不需要添加“$”符号。

当需要在SQL查询中引用当前连接Access数据库之外的其他Access数据库表时,需要在表名称前面加上数据库文件名称限定,文件名包含在方括号内,文件名与工作表之间使用“.”分隔。例如,下面的语句表示对“D:\MyBooks\8”目录下DB.accdb数据库的HumanResources_Department表执行查询。

SELECT *

FROM [D:\MyBooks\8\DB.accdb].HumanResources_Department

  相关解决方案