Du kan bruge funktioner i din ordre-ved klausul. I dette tilfælde kan du opdele de ikke-numeriske og numeriske dele af feltet og bruge dem som to af rækkefølgekriterierne.
select * from t
order by to_number(regexp_substr(a,'^[0-9]+')),
to_number(regexp_substr(a,'[0-9]+$')),
a;
Du kan også oprette et funktionsbaseret indeks for at understøtte dette:
create index t_ix1
on t (to_number(regexp_substr(a, '^[0-9]+')),
to_number(regexp_substr(a, '[0-9]+$')),
a);