Weiß nicht, ob das so einfach ist:
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
oder etwas kompakter, aber Oracle-spezifisch:
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
Die obige Lösung, die Zahlen verwendet, um die Sortierreihenfolge zu definieren, wird Währungen, die nicht im case/decode-Ausdruck nicht erwähnt werden, nicht automatisch korrekt sortieren.
Um einfach USD an die Spitze zu setzen und sich um den Rest nicht zu kümmern, muss das "generierte" Bestellkriterium auch ein Zeichenwert sein. Sie können in diesem Fall Folgendes verwenden:
order by
case
when currency = 'USD' then '001'
else currency
end
Welche eine "alphabetische" Reihenfolge verwendet. Dies funktioniert, weil Zeichen nach den Zahlenziffern sortiert werden. (Mit 'AAA'
statt '001'
würde auch funktionieren).