Maison >base de données >tutoriel mysql >Comment transformer des lignes en colonnes dans Oracle à l'aide de DECODE et PIVOT ?

Comment transformer des lignes en colonnes dans Oracle à l'aide de DECODE et PIVOT ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-31 15:54:21584parcourir

How to Transform Rows into Columns in Oracle Using DECODE and PIVOT?

Comment convertir des lignes en colonnes dans Oracle

Dans Oracle, vous pouvez faire face à des scénarios dans lesquels les données sont disposées en lignes mais elles doivent l'être affiché sous forme de colonnes. Cet article examine les méthodes de conversion de lignes en colonnes à l'aide de la fonction DECODE ou de la clause PIVOT.

Considérez le tableau suivant contenant les détails du prêt :

LOAN NUMBER   DOCUMENT_TYPE                DOCUMENT_ID
992452533663  Voters ID                    XPD0355636
992452533663  Pan card                     CHXPS5522D
992452533663  Drivers license              DL-0420110141769

Pour faire pivoter les lignes en colonnes, vous pouvez utiliser 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 license', document_id)) AS drivers_licence
  FROM
    doc_tab
GROUP BY loan_number
ORDER BY loan_number;

Cette requête produira ce qui suit sortie :

LOAN_NUMBER   VOTERS_ID            PAN_CARD             DRIVERS_LICENCE    
------------- -------------------- -------------------- --------------------
992452533663  XPD0355636           CHXPS5522D           DL-0420110141769     

Dans les versions Oracle 11g et supérieures, la clause PIVOT fournit un moyen plus simple d'obtenir le même résultat :

SELECT *
  FROM doc_tab
PIVOT (
  MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers license')
);

Les deux méthodes peuvent efficacement faire pivoter les lignes en colonnes, permettant vous de manipuler et d'afficher vos données dans le format préféré.

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!

Déclaration:
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