Maison >base de données >tutoriel mysql >Comment transformer efficacement 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
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.
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 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.
SELECT * FROM doc_tab PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
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!