Maison > base de données > tutoriel mysql > Comment faire pivoter des lignes en colonnes dans MySQL à l'aide de CASE et MAX() ?

Comment faire pivoter des lignes en colonnes dans MySQL à l'aide de CASE et MAX() ?

Barbara Streisand
Libérer: 2024-12-08 16:58:10
original
639 Les gens l'ont consulté

How to Pivot Rows into Columns in MySQL Using CASE and MAX()?

Transformer des lignes en colonnes dans MySQL

Considérons une base de données avec le tableau suivant :

CREATE TABLE mytable (
  ID INTEGER PRIMARY KEY,
  Type INTEGER,
  Email VARCHAR(255),
  Degignation VARCHAR(255)
);
Copier après la connexion

L'objectif est pour transformer les données des lignes en colonnes, la colonne Type devenant des en-têtes de colonne et la dernière colonne devenant des valeurs de ligne. Le résultat attendu ressemblerait à ceci :

ID                202         234                     239        Email
1000000000   Entrepreneur  Engineering,Development    CTO       [email protected]
Copier après la connexion

Pour réaliser cette transformation, MySQL fournit une requête plutôt complexe :

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`,
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`,
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`,
 Email
FROM mytable
GROUP BY ID, Email;
Copier après la connexion

Cette requête utilise l'expression CASE pour vérifier la colonne Type de chaque ligne. et attribuez la valeur de désignation correspondante à la colonne appropriée dans l'ensemble de résultats. La fonction MAX() est utilisée pour garantir que seule la valeur la plus récente (ou maximale) est renvoyée pour chaque colonne Type.

Il est important de noter que la requête nécessite un ensemble fixe d'en-têtes de colonne, ce qui signifie que les différents Les valeurs de type doivent être connues à l'avance. SQL ne prend pas en charge l'ajout dynamique de colonnes basé sur les valeurs de données découvertes lors de l'exécution de la requête.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal