【问题标题】:sql command for reading a particular sheet, column用于读取特定工作表、列的 sql 命令
【发布时间】:2010-11-14 22:46:39
【问题描述】:
对于 SQL 支持者来说,这可能是一个非常愚蠢的问题,但我只想要一个 SQL 命令。
详情,
我正在使用一个名为 R 的数据分析工具,该工具使用 ODBC 从 XLS 中读取数据。我现在正在尝试从 XLS 文件中读取数据。 R 中的 ODBC 工具接受 SQL 命令。
问题,
谁能给我一个从 XLS 文件中读取数据的 SQL 命令
- 指定表
- 指定列 [按名称]
- 指定行[仅由行索引指定]
谢谢...
【问题讨论】:
标签:
sql
excel
r
sqlcommand
import-from-excel
【解决方案1】:
一旦你设置了文件的连接,你可以使用下面的语句:
select [columnname] from [sheetname$] where [columnname] = 'somevalue'
不确定行索引的事情。但是,如果文件中的每一行都有序列号或任何此类唯一值,则可以使用 where 子句。
【解决方案2】:
这是一个示例查询:
SELECT [sheet1$.col1], [sheet1$.col2], [sheet2$.col1]
FROM [sheet1$], [sheet2$]
WHERE [sheet1$.col1] = [sheet2$.col2]
这假定一个带有 2 张工作表的 excel 文档(sheet1 和 sheet2)。每个工作表有 2 列,第一行作为标题(每个工作表中的 col1 和 col2)。
这是完整的代码:
> library(RODBC)
> conn <- odbcConnectExcel('c:/tmp/foo.xls')
> query <- "select [sheet1$.col1], [sheet1$.col2], [sheet2$.col1]
from [sheet1$], [sheet2$]
where [sheet1$.col1] = [sheet2$.col2];"
> result <- sqlQuery(conn, query)
> odbcClose(conn)
> result
col1 col2 col1.1
1 1 3 5
2 2 4 6
3 3 5 7
我从来没有找到处理行号的方法。我只是创建一个额外的列并按顺序填写。不确定这是否适合您。
【解决方案3】:
通过下面的查询,您可以从 A 列的第 61 行读取数据,& G 应该读取所有列直到 G。
SELECT * FROM [Sheet1$a61:G]