Maison >base de données >tutoriel mysql >Comment diviser une chaîne à la dernière occurrence d'un délimiteur dans 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!