Pivot-Abfragen in Oracle SQL erstellen
In Oracle SQL werden Pivot-Abfragen verwendet, um die vertikale Ausrichtung von Daten in eine horizontale Ausrichtung umzuwandeln. Ein häufiges Szenario besteht darin, in Zeilen organisierte Daten in ein in Spalten dargestelltes Format zu konvertieren.
Beispiel
Stellen Sie sich eine Datentabelle vor, die die Spalten „MONTH“ und „VALUE“ enthält:
MONTH | VALUE |
---|---|
1 | 100 |
2 | 200 |
3 | 300 |
4 | 400 |
5 | 500 |
6 | 600 |
Erwartete Ergebnisse
Das erwartete Ergebnis ist eine Pivot-Tabelle mit einer Spalte für jeden einzelnen Monat, in der der entsprechende „WERT“ angezeigt wird:
MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAY | MONTH_JUN |
---|---|---|---|---|---|
100 | 200 | 300 | 400 | 500 | 600 |
Oracle 11g und höher
In Oracle 11g und höher kann der PIVOT-Operator verwendet werden:
<code class="language-sql">create table tq84_pivot ( month number, value number ); insert into tq84_pivot values(1, 100); insert into tq84_pivot values(2, 200); insert into tq84_pivot values(3, 300); insert into tq84_pivot values(4, 400); insert into tq84_pivot values(5, 500); insert into tq84_pivot values(6, 600); -- 同一月有多个值 insert into tq84_pivot values(1, 400); insert into tq84_pivot values(2, 350); insert into tq84_pivot values(4, 150); select * from tq84_pivot pivot ( sum (value) as sum_value for (month) in (1 as month_jan, 2 as month_feb, 3 as month_mar, 4 as month_apr, 5 as month_mai, 6 as month_jun, 7 as month_jul, 8 as month_aug, 9 as month_sep, 10 as month_oct, 11 as month_nov, 12 as month_dec) );</code>
Diese Abfrage erstellt die erforderliche Pivot-Tabelle.
Das obige ist der detaillierte Inhalt vonWie kann ich Daten in Oracle SQL von Zeilen in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!