Mysql
 sql >> Base de données >  >> RDS >> Mysql

Transformation ligne en colonne dans MySQL

C'est ce qu'on appelle un tableau croisé dynamique. C'est un peu difficile à produire :

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

Notez que vous devez connaître tous les Type distincts valeurs avant d'écrire la requête. SQL ne permet pas à un jeu de résultats d'ajouter dynamiquement des colonnes supplémentaires lorsqu'il découvre des valeurs de données dans la table. Les colonnes doivent être fixées au moment de la préparation de la requête.