Maison >base de données >tutoriel mysql >Comment extraire des sous-chaînes avant un trait de soulignement 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;
Explication :
Exemple :
Donné :
ORG | VALUE 1 | ABC_blahblahblah 2 | DEFGH_moreblahblahblah 3 | IJKLMNOP_moremoremoremore
Requête :
SELECT NVL(SUBSTR(VALUE, 0, INSTR(VALUE, '_')-1), VALUE) AS output FROM ORG;
Résultat :
OUTPUT ABC DEFGH IJKLMNOP
Remarque :
Pour Versions Oracle10g, la fonction REGEXP_SUBSTR peut être utilisée comme alternative à SUBSTR :
SELECT REGEXP_SUBSTR(column, '^.*(?=_)') AS output FROM YOUR_TABLE;
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!