Oracle SQL中的自定义顺序
发布时间:2020-12-12 14:24:11 所属栏目:百科 来源:网络整理
导读:我需要基于货币进行订单交易。 然而,我需要实现一个自定义订单,这使得USD总是在顶部,其余的应该排序asc。 例如 : BHT USD MYR JYP 应排序如下: USD BHT 日元 MYR 有一个简单的方法来处理这个? 不知道这是否符合简单: order by case when currency = '
我需要基于货币进行订单交易。
然而,我需要实现一个自定义订单,这使得USD总是在顶部,其余的应该排序asc。 例如 : > BHT 应排序如下: > USD 有一个简单的方法来处理这个? 不知道这是否符合简单: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) 上述使用数字定义排序顺序的解决方案不会自动对货币/ decode表达式中未提及的货币进行正确排序。 为了简单地将USD放在前面而不关心其余部分,“生成的”顺序标准也必须是字符值。在这种情况下,您可以使用以下命令: order by case when currency = 'USD' then '001' else currency end 其中使用“字母顺序”。这是因为字符在数字数字后排序。 (使用’AAA’而不是’001’也可以工作)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |