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

Oracle:Bagaimana saya bisa menerapkan urutan alami dalam kueri SQL?

Anda dapat menggunakan fungsi dalam klausa order-by Anda. Dalam hal ini, Anda dapat membagi bagian non-numerik dan numerik dari bidang dan menggunakannya sebagai dua kriteria pengurutan.

select * from t
 order by to_number(regexp_substr(a,'^[0-9]+')),
          to_number(regexp_substr(a,'[0-9]+$')),
          a;

Anda juga dapat membuat indeks berbasis fungsi untuk mendukung ini:

create index t_ix1
    on t (to_number(regexp_substr(a, '^[0-9]+')),
          to_number(regexp_substr(a, '[0-9]+$')), 
          a);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Presisi JOOQ Oracle Number dan pemetaan angka java

  2. Kesalahan ORA-12638 di Oracle Database 11g

  3. Bagaimana cara mengatur LINESIZE dan PAGESIZE dengan variabel substitusi?

  4. Kesalahan saat memanggil Java dari PL/SQL

  5. Apa perbedaan antara variabel ikat dan variabel substitusi (yang saya masukkan menggunakan &&)?