Maison >base de données >tutoriel mysql >Comment extraire des sous-chaînes dans Oracle SQL avant un caractère spécifique ?
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 :
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!