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!