Без регулярных выражений вы можете использовать
substr( cust_income_level, instr( cust_income_level, '-') + 2 ) as cust_income_level
Если вы хотите использовать его как numeri c в ORDER BY, вы можете использовать функцию TO_NUMBER (), но это подвержено ошибкам, поскольку вы будут возникать ошибки, если значение не является фактическим числовым значением.
to_number( substr( cust_income_level, instr( cust_income_level, '-') + 2 )) as cust_income_level
Вместо этого для ORDER BY вы можете добавить начальные нули и использовать это значение для получения правильного порядка. Если есть значение, которое не является числом, оно будет представлено в результатах, но, по крайней мере, вы не получите ошибку.
lpad( substr( cust_income_level, instr( cust_income_level, '-') + 2 ), 9, '0')
В приведенном выше примере добавляются ведущие нули, пока значение не станет равным Длина 9 символов
- '3' становится '000000003'
- '40 'становится' 000000040 '
- et c.
Сортировка приведенных выше результатов приведет к правильному порядку чисел в типе данных varchar2.