Maison > base de données > tutoriel mysql > Comment transformer efficacement des lignes en colonnes dans Oracle ?

Comment transformer efficacement des lignes en colonnes dans Oracle ?

DDD
Libérer: 2025-01-04 21:27:40
original
477 Les gens l'ont consulté

How to Efficiently Transform Rows into Columns in Oracle?

Comment convertir des lignes en colonnes dans Oracle

Faire face au défi de transformer les données d'un tableau comportant plusieurs lignes et colonnes en une structure en colonnes plus lisible ? La base de données Oracle propose des techniques puissantes pour simplifier cette tâche.

Supposons que vous disposiez d'un tableau contenant des informations et des documents sur le prêt, tels que :

LOAN NUMBER | DOCUMENT_TYPE | DOCUMENT_ID
------------------------------------------
992452533663 | Voters ID | XPD0355636
992452533663 | Pan card | CHXPS5522D
992452533663 | Drivers licence | DL-0420110141769
Copier après la connexion

Pour convertir ces lignes en colonnes structurées, vous pouvez exploitez la fonction DECODE dans Oracle 10g ou la clause PIVOT introduite dans Oracle 11g.

Fonction DECODE (Oracle 10g)

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 des valeurs aux colonnes souhaitées en fonction de types de documents spécifiques. La fonction MAX renvoie ensuite l'ID de document correspondant pour chaque colonne.

Clause PIVOT (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 aligne les types de documents en colonnes et place les ID de document correspondants dans les cellules appropriées.

En utilisant ces techniques, vous pouvez remodeler efficacement vos données dans une disposition plus axée sur les colonnes, ce qui les rend plus faciles à comprendre. et analyser plus en détail.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal