Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle 11g . में अल्पन्यूमेरिक स्ट्रिंग्स को सॉर्ट करना

आपने प्रश्न क्रम में जो दिखाया है वह केवल मान के अंकीय भाग से है, इसलिए आपको कुछ ऐसा दिखाई देगा:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle (ORA-02270):इस स्तंभ-सूची त्रुटि के लिए कोई अद्वितीय या प्राथमिक कुंजी से मेल नहीं खाता

  2. पदानुक्रमित डेटासेट में जटिल योग की गणना करने में सहायता करें

  3. sql (ओरेकल) पहले 10 रिकॉर्ड का चयन करने के लिए, फिर अगले 10, और इसी तरह

  4. ROWNUM के बिना शीर्ष N पंक्तियों का चयन करना?

  5. SQL:अन्यथा क्रमबद्ध परिणाम सेट का अपवाद