Bạn có thể sử dụng các hàm trong mệnh đề theo thứ tự của mình. Trong trường hợp này, bạn có thể tách các phần không phải dạng số và dạng số của trường và sử dụng chúng làm hai trong số các tiêu chí sắp xếp.
select * from t
order by to_number(regexp_substr(a,'^[0-9]+')),
to_number(regexp_substr(a,'[0-9]+$')),
a;
Bạn cũng có thể tạo chỉ mục dựa trên chức năng để hỗ trợ điều này:
create index t_ix1
on t (to_number(regexp_substr(a, '^[0-9]+')),
to_number(regexp_substr(a, '[0-9]+$')),
a);