Dans la base de données Oracle, vous devrez peut-être fusionner plusieurs lignes d'un tableau en une seule ligne, créant ainsi une structure de tableau avec plusieurs colonnes. Supposons qu'il existe une table avec le schéma suivant :
<code>A 1 A 2 B 1 B 2</code>
Pour atteindre les résultats attendus suivants :
<code>A 1 2 B 1 2</code>
Oracle propose des fonctions SQL spécifiques pour répondre à ce besoin :
Avertissement : La fonction WM_CONCAT est désormais obsolète et a été supprimée dans Oracle 12c et versions ultérieures. Son utilisation dans des versions ultérieures peut entraîner des résultats imprévisibles.
<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field2;</code>
Pour les versions Oracle plus récentes, il est recommandé d'utiliser la fonction LISTAGG :
<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>
Si ni les fonctions WM_CONCAT ni LISTAGG ne sont disponibles dans votre version d'Oracle, vous pouvez implémenter des agrégations personnalisées en suivant ces étapes :
Veuillez noter que les agrégations personnalisées peuvent être plus complexes et plus gourmandes en calcul que l'utilisation de fonctions prédéfinies.
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!