Oracle SQL でのカスタム順序: 通貨の優先順位付け
さまざまな通貨でのトランザクションを含むデータをクエリする場合、多くの場合、それに基づいて結果を並べ替える必要が生じます。カスタム設定で。この特定のシナリオでは、要件は、USD 通貨を順序の先頭に配置し、その後に残りの通貨を昇順に並べ替えることです。
Oracle SQL には、このカスタム順序を実現するためのいくつかの方法が用意されています。 1 つのアプローチには、数値または文字列を各通貨に割り当てる 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
また、DECODE 関数を使用して同じマッピングを実行することもできます:
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
ただし、この方法は優先順位に従って通貨を明示的に指定することに依存しているため、通貨リストが広範囲にわたる場合や、通貨リストが広範囲に及ぶ場合には煩雑になる可能性があります。
データ内の通貨の数や種類に関係なく、一貫した順序を確保するには、通貨を文字値に変換し、アルファベット順を使用するという別のアプローチもあります。
order by case when currency = 'USD' then '001' else currency end
文字は数字の後にソートされるため、この方法では事実上、USD が順序の先頭に配置され、残りの通貨がアルファベット順にソートされます。
以上がOracle SQLクエリでUSD通貨を優先するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。