La conversion d'une colonne de données en plusieurs colonnes de données est une exigence courante dans Oracle. Par exemple, disons que vous disposez d'un tableau contenant des produits, des dates de vente et des quantités vendues. Vous souhaitez convertir cela en ventes mensuelles pour chaque produit. Le moyen le plus simple d’atteindre cet objectif est d’utiliser l’opération PIVOT.
Ce qui suit est un exemple de table :
PRODUCT SALE_DATE SALE_QUANTITY ------------------------------------- A 2021-01-01 100 A 2021-01-15 200 A 2021-02-01 300 B 2021-01-01 150 B 2021-03-01 250
Nous voulons le convertir au format suivant :
PRODUCT JAN_SALE FEB_SALE MAR_SALE ------------------------------------- A 300 300 0 B 150 0 250
Pour réaliser cette opération avec PIVOT, vous pouvez utiliser le SQL suivant :
SELECT PRODUCT, NVL(JAN_SALE, 0) AS JAN_SALE, NVL(FEB_SALE, 0) AS FEB_SALE, NVL(MAR_SALE, 0) AS MAR_SALE FROM (SELECT PRODUCT, TO_CHAR(SALE_DATE, 'MON') AS SALE_MONTH, SALE_QUANTITY FROM SALES_TABLE) PIVOT (SUM(SALE_QUANTITY) FOR SALE_MONTH IN ('JAN' AS JAN_SALE, 'FEB' AS FEB_SALE, 'MAR' AS MAR_SALE))
Dans le SQL ci-dessus, nous convertissons d'abord le tableau d'origine est un résultat intermédiaire avec une colonne MOIS. Nous avons utilisé la fonction TO_CHAR pour convertir SALE_DATE en une courte chaîne de mois. Nous utilisons ensuite l'opérateur PIVOT pour convertir la quantité des ventes de chaque mois en colonnes. La syntaxe de PIVOT est très concise, il vous suffit de préciser les colonnes et valeurs à convertir ainsi que le nom de la nouvelle colonne.
Dans l'exemple ci-dessus, nous avons utilisé la fonction NVL pour garantir que les résultats incluent tous les produits, même s'il n'y a aucune vente dans un mois. Si la fonction NVL n'est pas utilisée, les résultats de la requête ne peuvent afficher que les produits et les mois de ventes.
L'opération PIVOT convient non seulement à la conversion de colonnes en plusieurs colonnes, mais peut également convertir des lignes en plusieurs lignes en utilisant une syntaxe similaire. Par exemple, disons que vous disposez d'un tableau avec les régions, les produits et les quantités vendues. Vous souhaitez convertir cela en ventes totales par produit et par région. En utilisant l'opération PIVOT, vous pouvez facilement atteindre cet objectif.
En bref, l'opération PIVOT est un outil très utile et simple dans Oracle SQL, qui peut rapidement convertir une colonne en plusieurs colonnes ou une ligne en plusieurs lignes. Sa flexibilité et sa nature personnalisable le rendent utile dans de nombreuses situations.
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!