U kunt functies gebruiken in uw order-by-clausule. In dit geval kunt u de niet-numerieke en numerieke delen van het veld splitsen en deze als twee van de volgordecriteria gebruiken.
select * from t
order by to_number(regexp_substr(a,'^[0-9]+')),
to_number(regexp_substr(a,'[0-9]+$')),
a;
U kunt ook een op functies gebaseerde index maken om dit te ondersteunen:
create index t_ix1
on t (to_number(regexp_substr(a, '^[0-9]+')),
to_number(regexp_substr(a, '[0-9]+$')),
a);