Maison >base de données >tutoriel mysql >Comment diviser une chaîne à la dernière occurrence d'un délimiteur dans Oracle SQL ?

Comment diviser une chaîne à la dernière occurrence d'un délimiteur dans Oracle SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 14:56:44139parcourir

How to Split a String at the Last Occurrence of a Delimiter in Oracle SQL?

Diviser des chaînes à une position de délimiteur spécifique à l'aide d'Oracle SQL

Le fractionnement d'une chaîne à une position de délimiteur particulière est une exigence courante dans les tâches de manipulation de données. Les fonctions INSTR et SUBSTR dans Oracle SQL fournissent une approche simple pour y parvenir.

Dans votre cas, vous vouliez diviser la chaîne "F/P/O" au niveau du délimiteur le plus éloigné, qui dans ce cas est le dernière barre oblique (/). Votre instruction SQL d'origine, bien que généralement correcte, manquait l'argument critique start_position dans la fonction INSTR.

SELECT Substr('F/P/O', 1, Instr('F/P/O', '/') - 1) part1, 
       Substr('F/P/O', Instr('F/P/O', '/') + 1)    part2 
FROM   dual

En spécifiant une start_position négative dans INSTR, nous pouvons compter à rebours à partir de la fin de la chaîne. Dans votre cas, l'utilisation de -1 prendrait en compte la dernière occurrence du délimiteur.

SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1,
       SUBSTR(str, Instr(str, '/', -1, 1) +1) part2
FROM DATA

Cette requête modifiée divisera correctement la chaîne "F/P/O" à la dernière barre oblique, ce qui entraînera :

PART1    PART2
-----  -----
F/P       O

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