Sử dụng kết hợp SUBSTR, INSTR và NVL (đối với các chuỗi không có dấu gạch dưới) sẽ trả về những gì bạn muốn:
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
FROM DUAL
Kết quả:
output
------
ABC
Sử dụng:
SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
FROM YOUR_TABLE t
Tham khảo:
- SUBSTR
- INSTR
Phụ lục
Nếu sử dụng Oracle10g +, bạn có thể sử dụng regex qua REGEXP_SUBSTR.