Maison >base de données >tutoriel mysql >Comment extraire des sous-chaînes dans Oracle SQL avant un caractère spécifique ?

Comment extraire des sous-chaînes dans Oracle SQL avant un caractère spécifique ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-03 15:38:38995parcourir

How to Extract Substrings in Oracle SQL Before a Specific Character?

Récupération de sous-chaînes jusqu'à un caractère spécifique dans Oracle SQL

Sélectionner des sous-chaînes à partir d'une colonne de table mais limiter la plage à un caractère spécifique peut être stimulant. Imaginons un scénario dans lequel vous disposez d'une colonne avec des valeurs au format « ABC_blahblahblah ». Le but est d'extraire uniquement la partie avant le trait de soulignement.

La fonction SUBSTRING, qui repose sur une sélection basée sur la position, ne suffira pas car la position du soulignement varie. RTRIM, visant à supprimer des caractères spécifiques de la fin d'une chaîne, ne correspond pas précisément à cette exigence.

Pour relever ce défi, une combinaison de fonctions Oracle SQL peut être utilisée. En tirant parti de SUBSTR, INSTR et NVL, nous pouvons obtenir les résultats souhaités :

SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
  FROM DUAL

Explication :

  • NVL garantit un résultat valide même si la sous-chaîne ne contient pas de soulignement.
  • SUBSTR extrait une partie de la chaîne, en commençant par la position 0 (le début) et en terminant un caractère avant le souligner. INSTR localise la position du trait de soulignement.
  • Le résultat est affecté à la colonne de sortie.

Utilisation :

SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
  FROM YOUR_TABLE t

Dans Oracle10g, REGEXP_SUBSTR peut être utilisé pour effectuer une correspondance d'expression régulière, offrant une approche alternative pour extraire la sous-chaîne souhaitée.

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