gpt4 book ai didi

sql - Oracle SQL 中的自定义顺序

转载 作者:行者123 更新时间:2023-12-03 05:43:40 25 4
gpt4 key购买 nike

我需要根据货币订购交易。不过,我需要实现一个自定义排序依据,这使得美元始终位于顶部,其余的应按升序排序。

例如:

  • BHT
  • 美元
  • 马来西亚林 git
  • JYP

应按如下方式排序:

  • 美元
  • BHT
  • 日元
  • 马来西亚林 git

有没有简单的方法来处理这个问题?

最佳答案

不知道这是否简单:

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

或者更紧凑但特定于 Oracle:

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

它使用“字母顺序”排序。这是有效的,因为字符是在数字之后排序的。 (使用 'AAA' 代替 '001' 也可以)。

关于sql - Oracle SQL 中的自定义顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com