Anda dapat menggunakan fungsi dalam klausa order-by Anda. Dalam hal ini, Anda dapat membagi bagian non-numerik dan numerik dari bidang dan menggunakannya sebagai dua kriteria pengurutan.
select * from t
order by to_number(regexp_substr(a,'^[0-9]+')),
to_number(regexp_substr(a,'[0-9]+$')),
a;
Anda juga dapat membuat indeks berbasis fungsi untuk mendukung ini:
create index t_ix1
on t (to_number(regexp_substr(a, '^[0-9]+')),
to_number(regexp_substr(a, '[0-9]+$')),
a);