Zeilen in Spalten in MySQL umwandeln
Stellen Sie sich eine Datenbank mit der folgenden Tabelle vor:
CREATE TABLE mytable ( ID INTEGER PRIMARY KEY, Type INTEGER, Email VARCHAR(255), Degignation VARCHAR(255) );
Das Ziel ist um die Daten von Zeilen in Spalten umzuwandeln, wobei die Spalte „Typ“ zu Spaltenüberschriften und die letzte Spalte zu Zeilenwerten wird. Die erwartete Ausgabe würde wie folgt aussehen:
ID 202 234 239 Email 1000000000 Entrepreneur Engineering,Development CTO [email protected]
Um diese Transformation zu erreichen, stellt MySQL eine ziemlich komplexe Abfrage bereit:
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;
Diese Abfrage verwendet den CASE-Ausdruck, um die Typspalte jeder Zeile zu überprüfen und weisen Sie den entsprechenden Designation-Wert der entsprechenden Spalte im Ergebnissatz zu. Die Funktion MAX() wird verwendet, um sicherzustellen, dass für jede Typspalte nur der neueste (oder maximale) Wert zurückgegeben wird.
Es ist wichtig zu beachten, dass die Abfrage einen festen Satz von Spaltenüberschriften erfordert, d. h. die eindeutigen Typwerte müssen im Voraus bekannt sein. SQL unterstützt kein dynamisches Hinzufügen von Spalten basierend auf erkannten Datenwerten während der Abfrageausführung.
Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL mithilfe von CASE und MAX() Zeilen in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!