2009-07-29 8 views
3

Ceci est probablement une question très stupide pour les stalwarts SQL, mais je veux juste une commande SQL.commande sql pour lire une feuille particulière, colonne

Détails,

J'utilise un outil d'analyse de données appelée R, cet outil utilise ODBC pour lire les données XLS. J'essaie maintenant de lire les données d'un fichier XLS. L'outil ODBC dans R accepte les commandes SQL.

Question,

Quelqu'un peut-il me donner une commande SQL qui va lire les données à partir d'un de fichier XLS - La feuille spécifiée - la colonne spécifiée [par nom] - ligne spécifiée [spécifiée simplement par ligne Index]

... Merci

Répondre

3

Une fois que vous avez défini la connexion au fichier, vous pouvez utiliser la déclaration suivante:

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

Vous n'êtes pas sûr de l'index des lignes. Mais vous pouvez utiliser la clause where si chaque ligne du fichier a un numéro de série ou une valeur unique.

3

Voici une exemple de requête:

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

Cela suppose un document Excel avec 2 feuilles (sheet1 et sheet2). Chaque feuille a 2 colonnes, avec la première rangée comme en-têtes (col1 et col2 dans chaque feuille).

Voici le code complet:

> 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 

Je ne l'ai jamais trouvé un moyen de traiter les numéros de ligne. Je crée juste une colonne supplémentaire et remplis séquentiellement. Je ne sais pas si cela fonctionne pour vous.

5

Avec la requête ci-dessous, vous pouvez lire les données à partir de la ligne 61 de cloumn A, & G est censé lire toutes les colonnes jusqu'à G.

SELECT * FROM [Sheet1$a61:G] 
Questions connexes