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;
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') );
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!