Maison >base de données >tutoriel mysql >Comment transformer des lignes en colonnes dans Oracle à l'aide de DECODE et 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!