IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Récupérer les noms des colonnes ET les mettre en ligne


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut Récupérer les noms des colonnes ET les mettre en ligne
    Pour récupérer le nom des colonnes je sais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='nom_table';
    Mais comment faire pour les avoir sur une ligne ?
    Le but étant de les insérer en première ligne d'une requête comme nom des colonnes pour un export CSV.

  2. #2
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    En attendant j'ai trouvé une astuce en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT colname FROM (SELECT 1 AS grp, string_agg(COLUMN_NAME, ';') AS colname FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='ma_table'
    GROUP BY grp) AS nom_colonnes ;
    Ça me renvoie dans une colonne une chaîne séparé par des points-virgules.

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Votre requête intérieure suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT string_agg(COLUMN_NAME, ';') AS colname
      FROM INFORMATION_SCHEMA.COLUMNS
     WHERE TABLE_NAME = 'ma_table';
    Si vous avez plusieurs tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      SELECT TABLE_NAME
           , string_agg(COLUMN_NAME, ';') AS colname
        FROM INFORMATION_SCHEMA.COLUMNS
       WHERE TABLE_NAME IN ('ma_table1', 'ma_table2', 'ma_table3')
    GROUP BY TABLE_NAME 
    ORDER BY TABLE_NAME asc;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/09/2009, 03h03
  2. [MySQL] decalage dans les nom des colonnes avec les checkbox
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/04/2009, 12h58
  3. Réponses: 7
    Dernier message: 12/04/2007, 14h04
  4. [PostGreSQL] Récupérer les noms des colonnes
    Par Olivier14 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/02/2006, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo