Oracle SQL 中的自訂貨幣排序
處理不同貨幣的交易時,自訂它們的順序非常有用顯示。一個常見的需求是讓特定的貨幣(例如 USD)始終出現在清單的頂部,然後是按升序排列的其餘貨幣。
要在 Oracle SQL 中實現此目的,可以使用 CASE或 ORDER BY 子句中的 DECODE 表達式。操作方法如下:
CASE 表達式:
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
在此範例中,USD 的優先權為1,BHT 的優先權為2,依此類推。其餘貨幣的預設優先權為 5。結果將按照 USD 在頂部排序,然後是 BHT、JPY 和 MYR。
DECODE 表達式(Oracle 特定):
ORDER BY DECODE(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
DECODE 函數的工作方式與 CASE 表達式類似。它接受一個值(在本例中為貨幣)並將其與搜尋條件清單進行匹配。如果找到匹配,則傳回相應的結果。否則,會傳回預設值(本例中為 5)。
注意:
如果您希望美元顯示在頂部,而不管其他如果存在貨幣,您可以使用字元值作為優先級,例如:
ORDER BY CASE WHEN currency = 'USD' THEN '001' ELSE currency END
以上是如何在 Oracle SQL 中自訂訂單貨幣結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!