Maison >base de données >tutoriel mysql >Comment puis-je transposer les colonnes d'une table PostgreSQL en lignes ?

Comment puis-je transposer les colonnes d'une table PostgreSQL en lignes ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 15:53:461030parcourir

How Can I Transpose a PostgreSQL Table's Columns into Rows?

Transposition d'une table : colonnes en lignes

Énoncé du problème :

Considérez une table de sortie PostgreSQL avec le format suivant :

Sl.no    username    Designation    salary   etc..
 1        A           XYZ            10000    ...
 2        B           RTS            50000    ...
 3        C           QWE            20000    ...
 4        D           HGD            34343    ...

Le but est de transposer le tableau, en convertissant les colonnes en lignes, ce qui donne le résultat suivant :

Sl.no            1       2        3       4       ...
 Username        A       B        C       D       ...
 Designation     XYZ     RTS      QWE     HGD     ...
 Salary          10000   50000    20000   34343   ...

Solution :

Pour transposer la table et convertir les colonnes en lignes, vous pouvez utiliser le PostgreSQL suivant fonction :

SELECT
   unnest(array['Sl.no', 'username', 'Designation','salary']) AS "Columns",
   unnest(array[Sl.no, username, value3Count,salary]) AS "Values"
FROM view_name
ORDER BY "Columns"

Explication :

  • unnest(array['Sl.no', 'username', 'Désignation','salary'] ) crée une nouvelle ligne pour chaque colonne du tableau d'origine, créant ainsi une colonne noms.
  • unnest(array[Sl.no, username, value3Count,salary]) crée une nouvelle ligne pour chaque valeur de la table d'origine, correspondant aux noms de colonnes.
  • ORDER BY " Colonnes" garantit que les lignes sont classées par noms de colonnes.

Cette requête produira le tableau transposé souhaité, où se trouvent désormais les colonnes. lignes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn