Vous disposez d'une table avec des paires de clés et de valeurs dans Oracle 10g et souhaitez la transformer en table avec des colonnes pour chaque clé unique, avec la valeur correspondante dans chaque ligne. Le tableau résultant doit s'ajuster dynamiquement à toute nouvelle paire clé-valeur ajoutée au tableau d'origine.
Oracle 11g introduit l'opération PIVOT, qui vous permet d'effectuer un tel pivotement dynamique :
select * from (select id, k, v from _kv) pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
Cette requête créera une table avec des colonnes pour chacune des quatre clés spécifiées dans le IN clause.
Oracle 11g fournit également une option XML pivot qui vous permet de gérer les en-têtes de colonnes inconnus :
select * from (select id, k, v from _kv) pivot xml(max(v) for k in (any))
Cette requête produira un résultat XML set, où chaque colonne correspond à une clé unique et la valeur associée est stockée en tant que valeur de l'élément XML. valeur.
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!