Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

menyortir string alpanumerik di Oracle 11g

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengantre di tabel Oracle AQ saat dikomit dengan Java dan mengonsumsi dengan klien JMS

  2. Oracle 11g mendapatkan semua kejadian yang cocok dengan ekspresi reguler

  3. JDBC Batch menyisipkan penanganan pengecualian

  4. Bagaimana cara mentransfer file dump Oracle ke instans AWS RDS?

  5. Perintah pencarian untuk mencari Kolom/bidang di SQLPLUS untuk Oracle 10.2