Benutzerdefinierte Währungsreihenfolge in Oracle SQL
Bei der Arbeit mit Transaktionen in verschiedenen Währungen kann es hilfreich sein, die Reihenfolge, in der sie erfolgen, anzupassen angezeigt. Ein häufiger Bedarf besteht darin, dass eine bestimmte Währung, z. B. USD, immer ganz oben in der Liste angezeigt wird, gefolgt von den übrigen Währungen in aufsteigender Reihenfolge.
Um dies in Oracle SQL zu erreichen, können Sie CASE verwenden oder DECODE-Ausdruck in der ORDER BY-Klausel. So geht's:
CASE-Ausdruck:
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
In diesem Beispiel wird USD eine Priorität von 1, BHT eine Priorität von 2 usw. zugewiesen . Den übrigen Währungen wird eine Standardpriorität von 5 zugewiesen. Das Ergebnis wird mit USD an erster Stelle sortiert, gefolgt von BHT, JPY und MYR.
DECODE-Ausdruck (Oracle-spezifisch):
ORDER BY DECODE(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
Die DECODE-Funktion funktioniert ähnlich wie der CASE-Ausdruck. Es nimmt einen Wert (in diesem Fall eine Währung) und gleicht ihn mit einer Liste von Suchbedingungen ab. Wenn eine Übereinstimmung gefunden wird, wird das entsprechende Ergebnis zurückgegeben. Andernfalls wird der Standardwert (in diesem Fall 5) zurückgegeben.
Hinweise:
Wenn Sie möchten, dass USD unabhängig von den anderen vorhandenen Währungen oben angezeigt wird, können Sie Folgendes verwenden ein Zeichenwert als Priorität, z. B.:
ORDER BY CASE WHEN currency = 'USD' THEN '001' ELSE currency END
Das obige ist der detaillierte Inhalt vonWie kann ich benutzerdefinierte Währungsergebnisse in Oracle SQL bestellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!