Maison > base de données > tutoriel mysql > Comment extraire une sous-chaîne avant un trait de soulignement dans Oracle SQL ?

Comment extraire une sous-chaîne avant un trait de soulignement dans Oracle SQL ?

Linda Hamilton
Libérer: 2024-12-27 13:27:08
original
751 Les gens l'ont consulté

How to Extract a Substring Before an Underscore in Oracle SQL?

Comment extraire une sous-chaîne jusqu'à un caractère spécifique dans Oracle SQL

Identifier la position d'un caractère dans une chaîne peut être un défi courant dans la manipulation de données. Pour résoudre ce problème, la question explore un scénario dans lequel les sous-chaînes jusqu'à un caractère spécifique, dans ce cas le trait de soulignement ('_'), doivent être extraites d'une colonne de tableau.

Limitations basées sur la position de SUBSTRING

L'approche initiale consistant à utiliser la fonction SUBSTRING s'avère insuffisante en raison de sa dépendance à la sélection basée sur la position. Comme la position du trait de soulignement varie dans les exemples donnés, cette méthode ne parvient pas à récupérer systématiquement la sous-chaîne souhaitée.

La fonction RTRIM : une solution prometteuse mais incomplète

La prise en compte de la fonction RTRIM, destinée à supprimer un ensemble spécifique de caractères du côté droit, semble initialement prometteur. Cependant, il ne parvient pas à isoler les caractères menant au trait de soulignement, à moins que la fonction RTRIM ne soit utilisée conjointement avec une autre méthode.

Une combinaison de SUBSTR, INSTR et NVL

La solution réside en combinant la fonction SUBSTR avec INSTR, qui identifie la position du caractère, et NVL, qui gère les valeurs nulles. Le code suivant illustre cette approche :

SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
FROM DUAL
Copier après la connexion

Comprendre l'implémentation

  • La fonction SUBSTR extrait une sous-chaîne en fonction de la position de départ spécifiée (0) et de la longueur (INSTR('ABC_blah ', '_')-1).
  • La fonction INSTR trouve la première occurrence du caractère de soulignement et soustrait 1 pour tenir compte de l'indexation des caractères.
  • La fonction NVL renvoie la sous-chaîne si elle est trouvée (non nulle) ; sinon, il renvoie la chaîne d'origine.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal