Użycie kombinacji SUBSTR, INSTR i NVL (dla łańcuchów bez podkreślenia) zwróci to, czego chcesz:
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
FROM DUAL
Wynik:
output
------
ABC
Użyj:
SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
FROM YOUR_TABLE t
Odniesienie:
- SUBSTR
- INSTR
Uzupełnienie
Jeśli używasz Oracle10g+, możesz użyć wyrażenia regularnego przez REGEXP_SUBSTR.