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

Comment extraire des sous-chaînes avant un trait de soulignement dans Oracle SQL ?

Patricia Arquette
Libérer: 2024-12-29 00:26:09
original
485 Les gens l'ont consulté

How to Extract Substrings Before an Underscore in Oracle SQL?

Extraction de sous-chaînes vers un caractère spécifique dans Oracle SQL

Problème :
Sélection de sous-chaînes à partir d'une colonne contenant des résultats avec des séquences de caractères variables avant un caractère de soulignement ("_"), tout en excluant le trait de soulignement lui-même.

Solution :

Pour obtenir le résultat souhaité, une combinaison de fonctions SQL fournit une solution :

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

Explication :

  • La fonction SUBSTR extrait une sous-chaîne en commençant à partir de la position spécifiée (0) et en continuant pendant une longueur spécifiée.
  • La fonction INSTR détermine la position de la première occurrence du caractère de soulignement dans la chaîne.
  • La fonction NVL évalue la première valeur non nulle, garantissant que les sous-chaînes sans trait de soulignement caractère renvoie la valeur d'origine.
  • La soustraction de 1 de INSTR(colonne, '_') garantit que seuls les caractères précédant le trait de soulignement sont inclus dans le sortie.

Exemple :

Donné :

ORG | VALUE
1   | ABC_blahblahblah
2   | DEFGH_moreblahblahblah
3   | IJKLMNOP_moremoremoremore
Copier après la connexion

Requête :

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

Résultat :

OUTPUT
ABC
DEFGH
IJKLMNOP
Copier après la connexion

Remarque :

Pour Versions Oracle10g, la fonction REGEXP_SUBSTR peut être utilisée comme alternative à SUBSTR :

SELECT REGEXP_SUBSTR(column, '^.*(?=_)') AS output
FROM YOUR_TABLE;
Copier après la connexion

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 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