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

SQL Dinamis ASC dan DESC

Anda dapat melakukan solusi seperti @TonyAndrews dengan memanipulasi nilai numerik atau data. Untuk VARCHAR2 alternatif untuk SQL dinamis dapat memiliki dua ekspresi:

order by
   case when :sorting='ASC' then col1 end ASC,
   case when :sorting='DESC' then col1 end DESC

Saat :sorting memiliki nilai 'ASC' hasil dari ORDER BY menjadi seperti jika sudah:

order by
   col1 ASC,
   NULL DESC

Saat :sorting memiliki nilai 'DESC' hasil dari ORDER BY menjadi seperti jika sudah:

order by
   NULL ASC,
   col1 DESC

Satu kelemahan dari metode ini adalah bahwa kasus-kasus di mana pengoptimal dapat melewati operasi SORT karena ada indeks yang terlibat yang membuat data sudah diurutkan seperti yang diinginkan, itu tidak akan terjadi ketika menggunakan metode CASE seperti ini. Ini akan mengamanatkan operasi penyortiran apa pun yang terjadi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan dan ketentuan kueri Oracle SQL dengan stempel waktu dan tanggal ISO

  2. Oracle - Apa yang terjadi saat menyegarkan tampilan 'REFRESH FORCE ON DEMAND' dengan DBMS_MVIEW.REFRESH

  3. Memuat data XML mendapat kesalahan dengan mengatakan file kontrol saya merujuk pada bidang yang tidak ada

  4. cx_Oracle:Menggunakan tipe PL/SQL RECORD sebagai argumen untuk prosedur tersimpan

  5. Bagaimana cara mengatasi Kesalahan Ekspresi Hilang ORA 00936?