Ik weet niet of dit als eenvoudig kwalificeert:
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
of een beetje compacter maar Oracle-specifiek:
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
De bovenstaande oplossing waarbij getallen worden gebruikt om de sorteervolgorde te definiëren, sorteert valuta's die niet worden vermeld in de case/decode-expressie niet automatisch correct.
Om gewoon USD op de voorgrond te plaatsen en de rest niet te interesseren, moeten de "gegenereerde" bestelcriteria ook een tekenwaarde zijn. U kunt in dat geval het volgende gebruiken:
order by
case
when currency = 'USD' then '001'
else currency
end
Die een "alfabetische" volgorde gebruikt. Dit werkt omdat tekens worden gesorteerd na de cijfercijfers. (Met 'AAA'
in plaats van '001'
zou ook werken).