2009-07-29 8 views
3

これはおそらくSQL stalwartsの非常にばかげた質問ですが、私はほんの1つのSQLコマンドが必要です。特定のシート、列を読み込むためのsqlコマンド

詳細、

私は、このツールは、XLSからデータを読み取るためにODBCを使用して、Rと呼ばれるデータ解析ツールを使用しています。私は現在、XLSファイルからデータを読み込もうとしています。 RのODBCツールはSQLコマンドを受け入れます。

質問、

誰かが私にXLSファイルの からデータを読み込みますSQLコマンドを与えることができます - 指定されたシート - [名前]指定された列 - [ただ行インデックスで指定]指定した行

おかげで...

答えて

3

あなたがファイルへの接続を設定したら、あなたは次のステートメントを使用することができます。

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

行インデックスのものが不明です。しかし、ファイルの各行がシリアル番号かそのような一意の値を持つ場合、where句を使用することができます。ここで

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 

はここで完全なコードです。私は余分な列を作成し、順次入力します。それがあなたのために働くかどうか分からない。もし下記のクエリで

5

はcloumn Aの行61からデータを読み取ることができ、& GはG.

SELECT * FROM [Sheet1$a61:G] 
までのすべての列を読み取ることになっています
関連する問題