Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine SQL-Spalte mithilfe von CASE WHEN drehen, um Zeilendaten in Spalten umzuwandeln?

Wie kann ich eine SQL-Spalte mithilfe von CASE WHEN drehen, um Zeilendaten in Spalten umzuwandeln?

Mary-Kate Olsen
Freigeben: 2025-01-11 16:02:46
Original
841 Leute haben es durchsucht

How to Pivot a SQL Column Using CASE WHEN to Transform Row Data into Columns?

Verwendung von CASE WHEN für das Pivotieren von SQL-Spalten

Müssen Sie Ihre SQL-Daten von Zeilen in Spalten umwandeln? Die CASE WHEN-Anweisung bietet eine unkomplizierte Lösung für die Pivotierung, insbesondere wenn es sich um Tabellen handelt, die doppelte Werte in einer Spalte enthalten, die aggregiert werden müssen.

Lassen Sie es uns anhand eines Beispiels veranschaulichen. Stellen Sie sich diese Tabelle vor:

<code class="language-sql">Bank:
name  val   amount
John   1     2000
Peter  1     1999
Peter  2     1854
John   2     1888</code>
Nach dem Login kopieren

Unser Ziel: dies in eine Tabelle umstrukturieren, in der eindeutige „val“-Werte zu Spalten werden und jeder eindeutige „name“ eine Zeile ist. Die gewünschte Ausgabe:

<code class="language-sql">name  amountVal1 amountVal2  
John    2000        1888   
Peter   1999        1854    </code>
Nach dem Login kopieren

So erreichen Sie diesen Drehpunkt mit SUM() und CASE WHEN:

<code class="language-sql">SELECT 
  name,
  SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
  SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank
GROUP BY name;</code>
Nach dem Login kopieren

Diese Abfrage verwendet SUM(), um amount-Werte für jede eindeutige name- und val-Kombination zu aggregieren. Die CASE WHEN-Anweisung prüft, ob val 1 oder 2 ist, und weist das entsprechende amount entsprechend zu. GROUP BY name stellt eine Zeile pro eindeutigem Namen sicher. Das Ergebnis? Die Spalten amountVal1 und amountVal2 stellen die geschwenkten Daten übersichtlich dar. Diese Methode ist für eine bekannte, begrenzte Anzahl von val-Werten wirksam. Erwägen Sie für eine dynamische Anzahl von Werten die Verwendung von PIVOT oder anderen fortgeschritteneren Techniken.

Das obige ist der detaillierte Inhalt vonWie kann ich eine SQL-Spalte mithilfe von CASE WHEN drehen, um Zeilendaten in Spalten umzuwandeln?. 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