Вы можете использовать INSTR, чтобы найти nth
вхождение строки поиска:
Substr(col, 1, Instr(col, '_', 1, 3)-1)
Редактировать:
Лучший способ использует REGEXP_SUBSTR:
RegExp_Substr(col, '[^_]+(_[^_]+){0,n-1}')
Например, удалить все после 3-го подчеркивания:
RegExp_Substr('xxx_xxxx_xxxy_zzzz', '[^_]+(_[^_]+){0,2}')
Это также работает, если есть меньше чем n подчеркивания