आपने प्रश्न क्रम में जो दिखाया है वह केवल मान के अंकीय भाग से है, इसलिए आपको कुछ ऐसा दिखाई देगा:
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
यदि आप वर्णानुक्रमिक वर्णों और फिर उनके भीतर की संख्याओं के आधार पर आदेश देना चाहते हैं, तो आप खंड के क्रम में दो भावों का उपयोग कर सकते हैं - इसलिए आप पहले वर्णमाला अनुभाग द्वारा आदेश देते हैं, और फिर सभी वर्णमाला वर्णों के बाद जो बचता है उससे बनी संख्या से। छीन लिए गए हैं:
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