Maison >base de données >tutoriel mysql >Comment diviser des chaînes délimitées par des virgules en plusieurs lignes dans Oracle ?
Diviser la chaîne en plusieurs lignes dans la base de données Oracle
Présentation
Diviser une chaîne séparée par des virgules en plusieurs lignes est une tâche courante dans le traitement des données. Dans Oracle 10g et 11g, il existe plusieurs façons d'atteindre efficacement cet objectif.
Répartition de plusieurs colonnes
Pour diviser une chaîne contenant plusieurs valeurs en plusieurs colonnes, vous pouvez utiliser une combinaison de REGEXP_REPLACE, REGEXP_SUBSTR et de requêtes hiérarchiques.
Requête :
<code class="language-sql">WITH temp AS ( SELECT name, project, error FROM your_table ) SELECT name, project, TRIM(REGEXP_SUBSTR(error, '[^,]+', 1, levels.column_value)) AS new_error FROM temp, TABLE(CAST( MULTISET( SELECT level FROM dual CONNECT BY level <= REGEXP_COUNT(error, ',') + 1 ) AS sys.odcinumberlist )) levels WHERE levels.column_value <= REGEXP_COUNT(error, ',') + 1;</code>
Instructions :
REGEXP_COUNT
dans la requête optimisée) Conclusion
Cette méthode améliorée offre un moyen flexible de diviser des chaînes multi-colonnes en plusieurs lignes dans Oracle 10g et 11g. Il utilise les fonctions intégrées d'Oracle et des techniques avancées telles que les requêtes hiérarchiques pour gérer efficacement les tâches complexes de manipulation de chaînes.
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!