Heim >Datenbank >MySQL-Tutorial >Wie kann ich Daten in Oracle SQL von Zeilen in Spalten umwandeln?

Wie kann ich Daten in Oracle SQL von Zeilen in Spalten umwandeln?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-23 07:31:10315Durchsuche

How to Pivot Data from Rows to Columns in Oracle SQL?

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!

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