Non so se questo si qualifica come semplice:
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
o un po' più compatto ma specifico per Oracle:
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
La soluzione precedente che utilizza i numeri per definire l'ordinamento non ordina automaticamente le valute che non sono menzionate nell'espressione maiuscolo/decodifica.
Per mettere semplicemente USD in primo piano e non preoccuparsi del resto, anche i criteri dell'ordine "generato" devono essere un valore di carattere. In tal caso puoi utilizzare quanto segue:
order by
case
when currency = 'USD' then '001'
else currency
end
Che utilizza un ordinamento "alfabetico". Funziona perché i caratteri sono ordinati dopo le cifre dei numeri. (Utilizzando 'AAA'
invece di '001'
funzionerebbe ugualmente).