Mencipta pertanyaan pangsi dalam Oracle SQL
Dalam Oracle SQL, pertanyaan pangsi digunakan untuk menukar orientasi menegak data kepada orientasi mendatar. Senario biasa ialah menukar data tersusun baris kepada format yang dibentangkan lajur.
Contoh
Pertimbangkan jadual data yang mengandungi lajur "MONTH" dan "VALUE":
MONTH | VALUE |
---|---|
1 | 100 |
2 | 200 |
3 | 300 |
4 | 400 |
5 | 500 |
6 | 600 |
Hasil yang dijangkakan
Hasil yang dijangkakan ialah jadual pangsi dengan lajur untuk setiap bulan unik yang menunjukkan "VALUE" yang sepadan:
MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAY | MONTH_JUN |
---|---|---|---|---|---|
100 | 200 | 300 | 400 | 500 | 600 |
Oracle 11g dan ke atas
Dalam Oracle 11g dan lebih baru, pengendali PIVOT boleh digunakan:
<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>
Pertanyaan ini akan mencipta jadual pangsi yang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Pivot Data dari Baris ke Lajur dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!