Heim > Datenbank > MySQL-Tutorial > Wie kann ich in MySQL mithilfe von CASE und MAX() Zeilen in Spalten umwandeln?

Wie kann ich in MySQL mithilfe von CASE und MAX() Zeilen in Spalten umwandeln?

Barbara Streisand
Freigeben: 2024-12-08 16:58:10
Original
639 Leute haben es durchsucht

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

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)
);
Nach dem Login kopieren

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]
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage