Bonjour,
J'aimerais que le résultat de ma requête
select value from table where id = 1 qui me retourne 3 records ne me retourne qu'un seul record mais en 3 columns value1, value2 et value3.
Est ce possible ?
Merci.
Bonjour,
J'aimerais que le résultat de ma requête
select value from table where id = 1 qui me retourne 3 records ne me retourne qu'un seul record mais en 3 columns value1, value2 et value3.
Est ce possible ?
Merci.
Faites une recherche sur le mot clef PIVOT.
Il y a soit un syntaxe directe mais pas supportée par tous les SGBD, soit une combinaison des fonctions MAX et CASE.
Bonjour,
Je n'ai pas trouvé de manière élégante de faire ça en SQL pur (si quelqu'un a l'info, je suis intéressée). Vous pouvez toujours utiliser une clause GROUP BY pour parvenir à vos fins, mais ça fait plutôt bricolage...
Cependant, les SGBD proposent chacun leur manière de faire:
- Oracle propose PIVOT
- SQL Server propose PIVOT
- PostgreSQL propose des fonctions
...
Bonne journée,
Arkhena
Merci à vous deux pour vos réponses.
Ca m'aide grandement.
Et aussi ce sujet qui est excellent (merci à son auteur) :
http://fadace.developpez.com/mssql/pivot/
Et une particularité MySQL : la fonction GROUP_CONCAT()
Oui, mais qui peut répondre au besoin dans certains cas, et c'est bien pratique, comme quoi mysql n'a pas que des inconvénients, meme s'ils sont nombreux
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager