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中文网其他相关文章!