Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zeilen-zu-Spalten-Transformation in MySQL

Dies wird als Pivot-Tabelle bezeichnet. Es ist etwas umständlich zu produzieren:

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

Beachten Sie, dass Sie alle unterschiedlichen Type kennen müssen Werte, bevor Sie die Abfrage schreiben. SQL lässt nicht zu, dass eine Ergebnismenge dynamisch weitere Spalten hinzufügt, wenn Datenwerte in der Tabelle erkannt werden. Spalten müssen zur Vorbereitungszeit der Abfrage korrigiert werden.