In Oracle können Sie die Funktion unpivot() verwenden, um eine vertikale Tabelle in eine horizontale Tabelle umzuwandeln. Diese Funktion wird verwendet, um die Felder der Spalten in einer Zeile entsprechend den eindeutigen Werten von in mehrere Datenzeilen umzuwandeln Die Syntax lautet „Feld aus Datensatz auswählen unpivot(Spaltenwert für benutzerdefinierten Spaltennamen in(Spaltenname))“.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.
Bei der Oracle-Spaltenkonvertierung werden die Felder der Spalten in einer Zeile entsprechend dem eindeutigen Wert der Zeile in mehrere Datenzeilen konvertiert.
Die Grunddaten der Schülerleistungstabelle sind, dass die Fachleistung eines Schülers einem Datensatz entspricht. Dann haben wir die Zeilen in Spalten umgewandelt und daraus einen Datensatz erstellt, der der Punktzahl eines Schülers in jeder Spalte entspricht (Mathematik, Englisch, Chinesisch). In diesem Artikel geht es also darum, die zuvor konvertierte Schülerbewertungstabelle (Sicherungstabelle score_copy) erneut in Spalten und Zeilen umzuwandeln und in Originaldaten umzuwandeln. Die Falldaten lauten wie folgt:
Wie implementieren wir also die Spaltenumschaltung? Im Folgenden werden zwei häufig verwendete Methoden vorgestellt:
1. Verwenden Sie Union All zum Spleißen, wodurch die entsprechenden Spalten perfekt in Zeilendatensätze umgewandelt werden können. Der spezifische Code lautet wie folgt:
select t.stuname, '英语' as coursename ,t.英语 as score from SCORE_COPY t union all select t.stuname, '数学' as coursename ,t.数学 as score from SCORE_COPY t union all select t.stuname, '语文' as coursename ,t.语文 as score from SCORE_COPY t
Die Ergebnisse sind wie folgt:
2. Oracle automatisch verwenden Die Spalten-zu-Zeilen-Funktion Unpivot kann dieses Problem ebenfalls perfekt lösen. Die spezifische Syntaxstruktur lautet wie folgt:
select 字段 from 数据集 unpivot(自定义列名/*列的值*/ for 自定义列名 in(列名))
Der Implementierungscode lautet wie folgt:
select stuname, coursename ,score from score_copy t unpivot (score for coursename in (英语,数学,语文))
Die Ergebnisse sind wie folgt:
Empfohlenes Tutorial: „Oracle Video Tutorial“
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!