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).