Maison > base de données > tutoriel mysql > Comment faire pivoter efficacement des lignes en colonnes dans Oracle à l'aide de DECODE ou PIVOT ?

Comment faire pivoter efficacement des lignes en colonnes dans Oracle à l'aide de DECODE ou PIVOT ?

Linda Hamilton
Libérer: 2025-01-01 10:02:12
original
624 Les gens l'ont consulté

How to Efficiently Pivot Rows into Columns in Oracle Using DECODE or PIVOT?

Conversion de lignes en colonnes dans Oracle

Les tableaux de données contiennent souvent des informations réparties sur plusieurs lignes pour des entités individuelles. Pour améliorer la lisibilité et l'analyse des données, il peut être avantageux de convertir ces lignes en colonnes. Cette question illustre un cas d'utilisation pratique de conversion d'un tableau contenant des informations de document pour un numéro de prêt unique dans un format plus convivial.

Dans Oracle, les lignes peuvent être pivotées efficacement en colonnes à l'aide de la fonction DECODE ou du PIVOT. clause. Explorons comment utiliser ces méthodes pour résoudre le problème présenté dans la question :

Utilisation de la fonction DECODE

SELECT
    loan_number,
    MAX(DECODE(document_type, 'Voters ID', document_id)) AS voters_id,
    MAX(DECODE(document_type, 'Pan card', document_id)) AS pan_card,
    MAX(DECODE(document_type, 'Drivers licence', document_id)) AS drivers_licence
FROM
    doc_tab
GROUP BY loan_number
ORDER BY loan_number;
Copier après la connexion

Cette requête utilise la fonction DECODE pour attribuer le valeur document_id dans la colonne appropriée en fonction du document_type. La fonction d'agrégation MAX() est utilisée pour récupérer le document_id le plus récent pour chaque type de document.

Utilisation de la clause PIVOT (disponible dans Oracle 11g)

SELECT *
FROM doc_tab
PIVOT (
  MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence')
);
Copier après la connexion

La clause PIVOT fournit un moyen plus concis de faire pivoter les lignes en colonnes. Cela nécessite de spécifier la fonction d'agrégation (MAX dans ce cas) et les colonnes à faire pivoter.

Les deux approches convertissent efficacement les lignes en colonnes, offrant une vue plus intuitive et organisée des informations du document pour chaque numéro de prêt.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal