Oracle SQL 中的自訂排序
在Oracle SQL 中對資料進行排序時,有時需要自訂排序順序,例如優先級某些值出現在頂部。常見的情況是在多種貨幣中優先考慮特定貨幣,例如美元。
要根據自訂優先順序對列進行排序,可以使用 CASE 或 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
透過每個貨幣分配數值,排序將優先考慮值為1 的USD,其次是BHT(2 )、日圓(3) 和馬幣(4)。任何其他未指定的貨幣都將低於預設值 5。
使用 DECODE(Oracle 特定)
使用 DECODE 可以實現更簡潔的語法:
order by DECODE(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
未提及的替代方案貨幣
如果優先順序需要包含CASE/DECODE表達式中未明確提及的貨幣,可以使用以下修改:
order by CASE when currency = 'USD' then '001' else currency END
這會為USD('001'),確保其位於頂部,同時保留其餘貨幣按字母順序排序。
以上是如何在 Oracle SQL 中實作自訂排序以優先考慮特定值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!