2009-07-29 6 views
3

Dies ist wahrscheinlich eine sehr dumme Frage für SQL-Stalwarts, aber ich möchte nur einen SQL-Befehl.sql Befehl zum Lesen eines bestimmten Blatt, Spalte

Details

Ich bin ein Datenanalysetool R genannt Verwendung dieses Tool verwendet ODBC Daten von XLS zu lesen. Ich versuche nun, Daten aus einer XLS-Datei zu lesen. Das ODBC-Tool in R akzeptiert SQL-Befehle.

Frage,

Kann mir jemand einen SQL-Befehl geben, die Daten aus einer XLS-Datei der lesen - Angegebene Blatt - Angegebene Spalte [nach Namen] - Angegebene Zeile [Angegebene nur durch Row Index]

Dank ...

Antwort

3

Nachdem Sie die Verbindung zu der Datei festgelegt haben, können Sie folgende Anweisung:

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

Nicht sicher über die Zeile Index Sache. Sie können jedoch where-Klausel verwenden, wenn jede Zeile in der Datei eine Seriennummer oder einen solchen eindeutigen Wert hat.

3

Hier ist eine Beispielabfrage:

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

Dies setzt eine Excel-Dokument mit 2 Blatt (sheet1 und sheet2). Jedes Blatt hat 2 Spalten mit der ersten Zeile als Kopfzeilen (col1 und col2 in jedem Blatt).

Hier ist der komplette Code:

> 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 

Ich habe noch nie einen Weg, um mit Zeilennummern gefunden. Ich erstelle nur eine zusätzliche Spalte und fülle sie nacheinander aus. Nicht sicher, ob das für dich funktioniert.

5

Mit der Abfrage unten Sie die Daten aus Zeile 61 von cloumn A wird & G

SELECT * FROM [Sheet1$a61:G] 
alle Spalten bis G. lesen soll lesen
Verwandte Themen