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

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