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 :

Concaténation plus poussée


Sujet :

Requêtes PostgreSQL

  1. #1
    Futur Membre du Club
    Concaténation plus poussée
    bonjour,

    pour concaténer plusieurs lignes j'utilise actuellement le code
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    create table MATABLE as select commune,
    array_to_string(array_agg(distinct nom_personnes), ';'),
    array_to_string(array_agg(distinct fonction), ';')
    from table
    group by commune order by commune


    ceci me donne une ligne avec des colonnes pour la commune, pour les personnes, leurs fonctions
    ex
    Commune Personnes Fonction
    Toulouse Pierre; Ahmed Ingénieur; Responsable


    la question que je me posais est : est ce possible de faire une concaténation mais avec un résultat
    un peu plus complexe:
    une colonne pour les communes, une pour les personnes mais à chaque personnes une sous cellule

    ex :
    Commune Personnes Fonction
    Toulouse Pierre Ingénieur
    Ahmed Responsable

    Peut on faire cela?

    merci

  2. #2
    Futur Membre du Club
    j'ai trouvé comment mettre un retour à la ligne dans la concatenation '\n' à la place du point virgule mais je n'arrive pas à l'exporter en csv et surtout les termes ne correspondent pas.... ex Ahmed devient ingé et Pierre responsable

  3. #3
    Rédacteur/Modérateur

    Bonjour,

    Là, ce que vous cherchez à faire, c'est de la mise en forme des données... Ce n'est pas le rôle du SGBD, ni du SQL, de faire cela.
    C'est le travail du langage de mise en forme des données lors de l'affichage des résultats retournés par les requêtes d'interrogation (PHP, java...).
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Futur Membre du Club
    merci pour votre réponse

  5. #5
    Futur Membre du Club
    bonjour, du coup si j'ai bien compris je ne peux pas exporter une base avec des "sous lignes " en un csv qui me restituerait ce que je veux? le java et le php ne peuvent pas m'aider sauf si c'est pour une retitutution web or moi il me faut un 'produit Csv'

  6. #6
    Expert éminent sénior
    Encore une fois, le langage SQL n'est pas fait pour mettre en forme les données, c'est à l'application de faire cette mise en forme.

    Par contre, si vous utilisez du format CSV, vous pouvez passer par une étape excel intermédiaire (ou un tableur équivalent) qui exploitera les données brutes issues de vos requêtes et, via des fonctions ou du code VBA, réalisera la mise en forme souhaitée avant de formater en CSV.