Maison >base de données >tutoriel mysql >Comment puis-je diviser une chaîne dans Oracle SQL à l'occurrence la plus éloignée d'un délimiteur ?
Diviser les chaînes par position de délimiteur à l'aide d'Oracle SQL
Semblable à un autre article, l'exigence est de diviser une chaîne par l'occurrence la plus éloignée d'un délimiteur. La distinction clé ici est que le délimiteur n'est pas toujours la première instance, mais la plus éloignée.
Pour ce faire, les fonctions SUBSTR et INSTR peuvent être utilisées. Instr(str, '/', -1, 1) localise la position du délimiteur le plus éloigné, tandis que -1 indique de commencer la recherche de la fin de la chaîne vers le début.
Cependant, une erreur s'est produite dans l'exemple fourni en raison de l'absence de start_position dans la fonction INSTR. En ajoutant start_position = -1, la fonction INSTR trouve avec succès le délimiteur le plus éloigné et divise la chaîne en conséquence.
Voici le code modifié :
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
Cette modification garantit que le code est divisé avec précision la chaîne à la position de délimiteur souhaitée, ce qui entraîne la sortie correcte de "F/P" et "O" pour la chaîne donnée "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!