用于读取特定工作表,列的sql命令

时间:2009-07-29 04:57:49

标签: sql excel r sqlcommand import-from-excel

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

详细信息,

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

问题,

有人可以给我一个SQL命令来读取XLS文件中的数据 - 指定表格 - 指定列[按名称] - 指定行[仅由行索引指定]

谢谢...

3 个答案:

答案 0 :(得分:5)

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

SELECT * FROM [Sheet1$a61:G]

答案 1 :(得分:3)

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

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

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

答案 2 :(得分: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

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