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

Pesanan Kustom di Oracle SQL

Tidak tahu apakah ini memenuhi syarat sebagai sederhana:

order by 
    case 
       when currency = 'USD' then 1 
       when currency = 'BHT' then 2
       when currency = 'JPY' then 3
       when currency = 'MYR' then 4
       else 5
    end

atau sedikit lebih ringkas tetapi spesifik untuk Oracle:

order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)

Solusi di atas menggunakan angka untuk menentukan urutan pengurutan tidak akan secara otomatis mengurutkan mata uang dengan benar yang tidak disebutkan dalam ekspresi case/decode.

Untuk sekadar menempatkan USD di depan dan tidak peduli dengan sisanya, kriteria pesanan yang "dihasilkan" harus berupa nilai karakter juga. Anda dapat menggunakan yang berikut ini dalam kasus itu:

order by 
    case 
       when currency = 'USD' then '001' 
       else currency
    end

Yang menggunakan urutan "abjad". Ini berfungsi karena karakter diurutkan setelah digit angka. (Menggunakan 'AAA' bukannya '001' akan bekerja juga).



  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 memeriksa apakah ada prosedur tersimpan?

  2. Cadangan Online Vs Offline

  3. Menggunakan Parameter dengan Koneksi ODBC Oracle

  4. Percepat to_sql() saat menulis Pandas DataFrame ke database Oracle menggunakan SqlAlchemy dan cx_Oracle

  5. Mengonfigurasi Integrasi Data Pentaho untuk menggunakan Oracle Wallet untuk Oracle Cloud