ホームページ >データベース >mysql チュートリアル >Oracle SQLクエリでUSD通貨を優先するにはどうすればよいですか?

Oracle SQLクエリでUSD通貨を優先するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-23 19:29:17812ブラウズ

How to Prioritize USD Currency in Oracle SQL Queries?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。