Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Pivotierung von Daten aufheben und Spaltennamen in SQL beibehalten?

Wie kann ich die Pivotierung von Daten aufheben und Spaltennamen in SQL beibehalten?

Linda Hamilton
Linda HamiltonOriginal
2025-01-21 04:33:08200Durchsuche

How Can I Unpivot Data and Retain Column Names in SQL?

Verwenden Sie den „umgekehrten“ Vorgang, um Daten zu rekonstruieren und Spaltennamen beizubehalten

Die „Reverse“-Operation ist ein wichtiges Werkzeug zur Rekonstruktion von Tabellendaten. Sie kann die Daten vom spaltenorientierten Format in das zeilenorientierte Format konvertieren. Ein häufiges Szenario besteht darin, Daten und Spaltennamen aus der Originaltabelle zu extrahieren.

Betrachten Sie die folgende Tabelle mit dem Namen „StudentMarks“, die die Leistungen der Schüler in verschiedenen Fächern verfolgt:

姓名 数学 科学 英语
Tilak 90 40 60
Raj 30 20 10

Die gewünschte Ausgabe ist eine rekonstruierte Tabelle mit drei Spalten: Name, Thema und Punktzahl:

姓名 科目 分数
Tilak 数学 90
Tilak 科学 40
Tilak 英语 60

Um dies zu erreichen, können wir die Operation „Invertieren“ wie unten gezeigt verwenden:

<code class="language-sql">select u.name, u.subject, u.marks
from student s
unpivot
(
  marks
  for subject in (Maths, Science, English)
) u;</code>

Diese Abfrage kehrt die Daten in der StudentMarks-Tabelle erfolgreich um und behält dabei Namens- und Kontoinformationen bei. Die „FOR“-Klausel gibt die Spaltennamen an, aus denen Daten extrahiert werden.

Wie Sie bereits erwähnt haben, wurden in Ihrer ursprünglichen Abfrage die Namens- und Bruchwerte erfolgreich umgekehrt, es fehlte jedoch die Kontospalte. Die geänderte Abfrage löst dieses Problem, indem sie die Kontospalte in die endgültige Auswahlliste einbezieht.

Diese Lösung bietet eine flexible Möglichkeit zur Rekonstruktion tabellarischer Daten und ermöglicht die Extraktion von Datenwerten und entsprechenden Spaltennamen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Pivotierung von Daten aufheben und Spaltennamen in SQL beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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