Heim  >  Artikel  >  Datenbank  >  So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

WBOY
WBOYOriginal
2022-05-24 17:29:027623Durchsuche

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))“.

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle 11g-Version, Dell G3-Computer.

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

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:

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

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:

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

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:

So konvertieren Sie eine vertikale Oracle-Tabelle in eine horizontale Tabelle

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!

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