Maison > base de données > tutoriel mysql > Comment diviser une chaîne dans Oracle SQL par le délimiteur le plus éloigné ?

Comment diviser une chaîne dans Oracle SQL par le délimiteur le plus éloigné ?

DDD
Libérer: 2025-01-04 22:37:41
original
731 Les gens l'ont consulté

How to Split a String in Oracle SQL by the Furthest Delimiter?

Diviser la chaîne par position de délimiteur à l'aide d'Oracle SQL

Dans les environnements de base de données, travailler avec des données de chaîne est essentiel. La possibilité de diviser une chaîne par un délimiteur à une position spécifique est souvent requise pour la manipulation et l'analyse des données. Cette question montre comment surmonter le défi de diviser une chaîne dans Oracle SQL en déterminant le délimiteur le plus éloigné.

L'exemple fourni dans la question implique de séparer la chaîne « F/P/O » en ses composants, et le le résultat souhaité est "F/P" et "O". Le problème survient lorsque la chaîne ne suit pas systématiquement le même modèle de délimiteur, car le code SQL fourni produit des résultats inattendus pour les chaînes avec un seul délimiteur.

Pour résoudre ce problème, le code SQL fourni doit être légèrement modifié. . La clé est d'identifier le délimiteur le plus éloigné de la fin de la chaîne. Ceci peut être réalisé en utilisant la fonction INSTR, qui prend une position de départ négative.

Vous trouverez ci-dessous le code SQL révisé qui divise avec succès la chaîne par le délimiteur le plus éloigné :

WITH DATA AS
(
SELECT 'F/P/O' str FROM dual
)
SELECT 
SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1,
SUBSTR(str, Instr(str, '/', -1, 1) +1) part2
FROM DATA
Copier après la connexion

Dans ce code amélioré, la fonction INSTR est appelée avec une position de départ négative de -1 et un modèle de recherche de '/'. Cela garantit que la fonction commence la recherche à partir de la fin de la chaîne, en identifiant le délimiteur le plus éloigné. La division résultante est précise pour les chaînes avec plusieurs délimiteurs et celles avec un seul délimiteur, comme vous le souhaitez.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal