Création de requêtes pivot dans Oracle SQL
Dans Oracle SQL, les requêtes pivot sont utilisées pour convertir l'orientation verticale des données en orientation horizontale. Un scénario courant consiste à convertir des données organisées en lignes dans un format présenté en colonnes.
Exemple
Considérons un tableau de données contenant les colonnes "MOIS" et "VALEUR" :
MONTH | VALUE |
---|---|
1 | 100 |
2 | 200 |
3 | 300 |
4 | 400 |
5 | 500 |
6 | 600 |
Résultats attendus
Le résultat attendu est un tableau croisé dynamique avec une colonne pour chaque mois unique affichant la "VALEUR" correspondante :
MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAY | MONTH_JUN |
---|---|---|---|---|---|
100 | 200 | 300 | 400 | 500 | 600 |
Oracle 11g et supérieur
Dans Oracle 11g et versions ultérieures, l'opérateur PIVOT peut être utilisé :
<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>
Cette requête créera le tableau croisé dynamique requis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!