Petite astuce SQL : génération de requêtes SQL avec Excel

Si c’est une évidence pour les vieux de la vieille, je me rends compte que tous ne sont pas forcément au courant de cette technique assez simple qui permet de générer des requêtes SQL avec Excel. Ça a surement déjà dû être bloggé 10 fois, mais ça va plus vite d’écrire l’article que de le chercher 😉

Vous partez depuis Excel, avec le tableau qu’on souhaiterait importer côté SQL:

Un tableau dans Excel

Vous y ajoutez la formule Excel suivante :

Tableau plus la formule qui suit

="SELECT '"&Tableau1[@[Colonne 1]]&"' AS Colonne1, "&Tableau1[@[Colonne 2]]&" AS Colonne2, '"&Tableau1[@[Colonne 3]]&"' AS Colonne3 UNION ALL"

Le principe vous l’avez compris : on compose une chaîne de caractère (= »SELECT… ») qui va correspondre à un SELECT simple (qui n’a pas besoin de FROM sur SQL Server, on rajoute FROM DUAL sur du Oracle) qui seront enchainés les uns aux autres par le UNION ALL (= »SELECT … UNION ALL »). Dans cette chaîne, on n’oublie pas de mettre les champs texte entre quote (‘ ).

Voilà ce que ça donne :

Tableau avec le résultat de la formule sur la première ligne

Ce qu’on va pouvoir recopier pour tout le tableau :

Tableau avec la formule recopié pour toutes les lignes

Direction SQL Server Management Studio, où on supprime le dernier UNION ALL, puis on encapsule le tout dans un SELECT imbriqué, et hop, mes valeurs sont prêtes à être intégrées avec un INSERT INTO, ou utilisées pour définir une vue :

La requête SQL en résultat

En SQL:

SELECT
        Colonne1,
        Colonne2,
        Colonne3
FROM (
        SELECT 'A' AS Colonne1, 12 AS Colonne2, 'XART' AS Colonne3 UNION ALL
        SELECT 'B' AS Colonne1, 15 AS Colonne2, 'CFSE' AS Colonne3 UNION ALL
        SELECT 'C' AS Colonne1, 42 AS Colonne2, 'SJRU' AS Colonne3 --UNION ALL
) A

C’est quand même bien fait hein ?

BD : xkcd – Tar

Sur SQL Server c’est le 3,103, ou 112, ou 20… en paramètre du CONVERT(Datetime,’31/01/2013′,…). Ça fait 7 ans que je le pratique, jamais bon du premier coup…

xkcd : Tar

Traduction approximative:

  • « Rob, tu connais Unix, vient vite! »
  • Pour désarmer la bombe, il suffit d’entrer une commande tar valide du premier coup. Google intertdit. Vous avez 10 secondes.
  • « …Rob? »
  • « Je suis désolé… »

Tour d’horizon: Techniques BI sur SQL Server

Désolé pour les amateurs de la partie business du blog, mais je suis dans une période technique et ça se sent dans les articles. Promis j’équilibrerai bientôt 😉

Comme la dernière fois, je vous livre quelques articles qui m’ont bien plu chez les bloggeurs BI:

Bonne lecture 🙂

Poor SQL : l’éléphant bleu du SQL

Via le mailing de Brent Ozar & Coje recommande vivement cette newsletter à quiconque bosse de près ou de loin sur SQL Server – un petit outil sympa qui reformate vos requêtes T-SQL directement dans votre navigateur web : Poor SQL. Ça marche plutôt bien, le voilà d’ailleurs déjà qui atterrit dans ma barre de favoris!

Et pour ceux que ça intéresse, j’en profite pour vous rappeler l’existence du Blitz de Brent Ozar, script SQL qui permet de prendre en main en 60 minutes les serveurs SQL dont vous venez d’hériter.