Ved ikke, om dette kvalificeres som simpelt:
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
eller lidt mere kompakt, men Oracle-specifik:
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
Ovenstående løsning, der bruger tal til at definere sorteringsrækkefølgen, vil ikke automatisk sortere valutaer korrekt, som ikke er nævnt i case/decode-udtrykket.
For blot at sætte USD foran og være ligeglad med resten, skal de "genererede" ordrekriterier også være en tegnværdi. Du kan bruge følgende i så fald:
order by
case
when currency = 'USD' then '001'
else currency
end
Som bruger en "alfabetisk" rækkefølge. Dette virker, fordi tegn er sorteret efter talcifrene. (Ved brug af 'AAA'
i stedet for '001'
ville også fungere).