Maison >base de données >tutoriel mysql >Comment puis-je diviser une valeur VARCHAR en plusieurs colonnes dans Oracle ?

Comment puis-je diviser une valeur VARCHAR en plusieurs colonnes dans Oracle ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-02 22:05:43691parcourir

How Can I Split a VARCHAR Value into Multiple Columns in Oracle?

Diviser les valeurs VARCHAR en colonnes distinctes dans Oracle

Pour répondre à une exigence courante de transformation de base de données, les utilisateurs recherchent souvent des moyens d'analyser les valeurs VARCHAR en colonnes distinctes. colonnes. Un scénario typique consiste à récupérer des commentaires à partir d'une table, où chaque commentaire commence par une chaîne spécifique, et l'objectif est de séparer le commentaire en deux colonnes distinctes.

Par exemple, considérons une valeur renvoyée telle que :

COLUMN_ONE
--------------------
'D7ERROR username'

Où doit se trouver le résultat souhaité :

COL_ONE    COL_TWO
--------------------
D7ERROR   username   

La définition de colonne est-elle possible après l'ensemble des résultats Structuration ?

La question clé réside dans la possibilité de définir de nouvelles colonnes une fois que l'ensemble de résultats a été structuré. La réponse dépend de la cohérence des données.

Solution pour des séparateurs cohérents

En supposant un délimiteur cohérent (par exemple, un seul espace) entre les deux valeurs souhaitées, le la requête suivante peut être utilisée :

SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, ' ')-1) AS col_one,
       SUBSTR(t.column_one, INSTR(t.column_one, ' ')+1) AS col_two
  FROM YOUR_TABLE t

Cette requête divise la chaîne en fonction de la première occurrence de l'espace caractère.

Solution Regex pour les séparateurs complexes

Pour des scénarios plus complexes, Oracle 10g et les versions ultérieures offrent la prise en charge des expressions régulières et une fonction de sous-chaîne regex. Cela offre une plus grande flexibilité dans la gestion des modèles de données variables.

Supplémentaire Références :

  • [SUBSTR](https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions066.htm#SQLRF 00482)
  • [INSTR](https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions414.htm#SQLRF02048)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn