Oracle SQL での通貨優先によるカスタム注文
多くのデータ クエリ タスクには、特定の基準に基づいてデータを並べ替えることが含まれます。ご希望の順序が標準のアルファベットまたは数字の配列から異なる場合は、カスタムオーダーが必要になります。この記事では、通貨に基づいてトランザクションを順序付けする必要があるシナリオについて説明します。特に、USD を最上位に配置することを優先します。
このカスタム順序を実現するために、Oracle SQL は 2 つのアプローチを提供します。
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 を割り当てます。これが最初に表示され、その後に他の通貨が指定された順序で表示されます。
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
ここで、DECODE は通貨値をチェックし、対応する数値優先度を返します。
注: これらの方法は質問で指定された通貨に対しては機能しますが、他の通貨が CASE または DECODE に明示的に含まれていない場合、正しく並べ替えられない可能性があります。
追加のカスタマイズ: 他のすべての通貨を同等に扱い、USD のみを優先したい場合は、次の手法を使用できます:
order by case when currency = 'USD' then '001' else currency end
この式は次の値を割り当てます。 USD に対する一意の文字列 ('001')。ASCII が低いため、アルファベット順で最初に表示されます。 value.
これらのメソッドを使用すると、特定の基準に基づいてデータの順序をカスタマイズでき、Oracle SQL で柔軟で強力なソリューションを提供できます。
以上がOracle SQLでUSD優先で通貨別にデータをカスタムオーダーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。