L'utilisation d'une combinaison de SUBSTR, INSTR et NVL (pour les chaînes sans trait de soulignement) renverra ce que vous voulez :
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
FROM DUAL
Résultat :
output
------
ABC
Utiliser :
SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
FROM YOUR_TABLE t
Référence :
- SUBSTR
- INSTR
Avenant
Si vous utilisez Oracle10g+, vous pouvez utiliser regex via REGEXP_SUBSTR.