Apa yang Anda tunjukkan dalam pertanyaan diurutkan hanya berdasarkan bagian numerik dari nilai, sehingga Anda akan melihat sesuatu seperti:
TOKEN
------
BRIP.1
BRFL.1
BRBF.1
BR00.1
BRRF.1
BR00.2
BRRF.2
BRBF.2
BR00.3
BRRF.3
BR01.1
BR01.2
BR06.1
BR12.1
BR13.2
BR17.1
BR120
BR121
BR132
Jika Anda ingin mengurutkan berdasarkan karakter abjad dan kemudian dengan angka di dalamnya, Anda dapat menggunakan dua ekspresi dalam urutan demi klausa - jadi Anda mengurutkan berdasarkan bagian abjad pertama, dan kemudian dengan nomor yang terbentuk dari apa yang tersisa setelah semua karakter abjad dilucuti:
select * from sortest
order by regexp_substr(token, '[[:alpha:]]*'),
to_number(regexp_replace(token, '[[:alpha:]]', null));
TOKEN
------
BR00.1
BR00.2
BR00.3
BR01.1
BR01.2
BR06.1
BR12.1
BR13.2
BR17.1
BR120
BR121
BR132
BRBF.1
BRBF.2
BRFL.1
BRIP.1
BRRF.1
BRRF.2
BRRF.3