3

对于 SQL 支持者来说,这可能是一个非常愚蠢的问题,但我只想要一个 SQL 命令。

细节,

我正在使用一个名为 R 的数据分析工具,该工具使用 ODBC 从 XLS 读取数据。我现在正在尝试从 XLS 文件中读取数据。R 中的 ODBC 工具接受 SQL 命令。

问题,

有人可以给我一个 SQL 命令,它将从 XLS 文件的 - 指定工作表 - 指定列 [按名称] - 指定行 [仅按行索引指定] 中读取数据

谢谢 ...

4

3 回答 3

5

通过下面的查询,您可以从 A 列的第 61 行读取数据,& G 应该读取所​​有列直到 G。

SELECT * FROM [Sheet1$a61:G]
于 2010-01-12T05:52:32.950 回答
3

设置到文件的连接后,可以使用以下语句:

select [columnname] from [sheetname$] where [columnname] = 'somevalue'

不确定行索引的事情。但是,如果文件中的每一行都有序列号或任何此类唯一值,则可以使用 where 子句。

于 2009-07-29T05:08:53.507 回答
3

这是一个示例查询:

SELECT [sheet1$.col1], [sheet1$.col2], [sheet2$.col1] 
FROM   [sheet1$], [sheet2$] 
WHERE  [sheet1$.col1] = [sheet2$.col2]

这假设一个带有 2 张纸(sheet1sheet2)的 excel 文档。每张纸有 2 列,第一行作为标题(col1col2每张纸中)。

这是完整的代码:

> 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

我从来没有找到处理行号的方法。我只是创建一个额外的列并按顺序填写。不确定这是否适合你。

于 2009-07-29T05:26:13.953 回答