Heim > Datenbank > MySQL-Tutorial > Wie transponiere ich Daten in SQL mithilfe von CASE-Anweisungen?

Wie transponiere ich Daten in SQL mithilfe von CASE-Anweisungen?

Barbara Streisand
Freigeben: 2025-01-05 04:36:39
Original
762 Leute haben es durchsucht

How to Transpose Data in SQL Using CASE Statements?

Daten in einer SQL-Tabelle mithilfe von Case-Anweisungen transponieren

In SQL bezieht sich das Transponieren von Daten auf das Konvertieren eines Datensatzes, bei dem Zeilen und Spalten vertauscht werden. So transponieren Sie eine Tabelle mit einer ähnlichen Struktur wie der bereitgestellten:

Id UserId FieldName FieldValue
1 100 Username John Doe
2 100 Password pass123!
3 102 Username Jane
4 102 Password $ecret
5 102 Email Address [email protected]

in eine transponierte Form:

UserId Username Password Email Address
100 John Doe pass123!
102 Jane $ecret [email protected]

Ein Ansatz besteht darin, mehrere CASE-Anweisungen zusammen mit Group-By-Klauseln zu verwenden:

SELECT t.userid
       MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
       MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
       MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
  FROM TABLE t
GROUP BY t.userid
Nach dem Login kopieren

Diese Abfrage berechnet den Maximalwert für jede Benutzer- und Feldkombination. Die CASE-Anweisungen definieren, welcher Feldwert basierend auf dem Wert des FieldName-Felds zurückgegeben werden soll.

Diese Methode erfordert jedoch die Definition von CASE-Anweisungen für jeden spezifischen Feldnamen. Erwägen Sie für eine dynamische Lösung die Verwendung der Prepared Statement-Syntax (dynamisches SQL) von MySQL zum Generieren der Abfrage.

Das obige ist der detaillierte Inhalt vonWie transponiere ich Daten in SQL mithilfe von CASE-Anweisungen?. 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