Menggunakan kombinasi SUBSTR, INSTR, dan NVL (untuk string tanpa garis bawah) akan mengembalikan apa yang Anda inginkan:
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
FROM DUAL
Hasil:
output
------
ABC
Gunakan:
SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
FROM YOUR_TABLE t
Referensi:
- SUBSTR
- INSTR
tambahan
Jika menggunakan Oracle10g+, Anda dapat menggunakan regex melalui REGEXP_SUBSTR.