对于 SQL 支持者来说,这可能是一个非常愚蠢的问题,但我只想要一个 SQL 命令。
细节,
我正在使用一个名为 R 的数据分析工具,该工具使用 ODBC 从 XLS 读取数据。我现在正在尝试从 XLS 文件中读取数据。R 中的 ODBC 工具接受 SQL 命令。
问题,
有人可以给我一个 SQL 命令,它将从 XLS 文件的 - 指定工作表 - 指定列 [按名称] - 指定行 [仅按行索引指定] 中读取数据
谢谢 ...
对于 SQL 支持者来说,这可能是一个非常愚蠢的问题,但我只想要一个 SQL 命令。
细节,
我正在使用一个名为 R 的数据分析工具,该工具使用 ODBC 从 XLS 读取数据。我现在正在尝试从 XLS 文件中读取数据。R 中的 ODBC 工具接受 SQL 命令。
问题,
有人可以给我一个 SQL 命令,它将从 XLS 文件的 - 指定工作表 - 指定列 [按名称] - 指定行 [仅按行索引指定] 中读取数据
谢谢 ...
通过下面的查询,您可以从 A 列的第 61 行读取数据,& G 应该读取所有列直到 G。
SELECT * FROM [Sheet1$a61:G]
设置到文件的连接后,可以使用以下语句:
select [columnname] from [sheetname$] where [columnname] = 'somevalue'
不确定行索引的事情。但是,如果文件中的每一行都有序列号或任何此类唯一值,则可以使用 where 子句。
这是一个示例查询:
SELECT [sheet1$.col1], [sheet1$.col2], [sheet2$.col1]
FROM [sheet1$], [sheet2$]
WHERE [sheet1$.col1] = [sheet2$.col2]
这假设一个带有 2 张纸(sheet1
和sheet2
)的 excel 文档。每张纸有 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
我从来没有找到处理行号的方法。我只是创建一个额外的列并按顺序填写。不确定这是否适合你。