ホームページ >データベース >mysql チュートリアル >Oracle SQLでカスタム・ソートを実装して特定の値を優先するにはどうすればよいですか?
Oracle SQL でのカスタム並べ替え
Oracle SQL でデータを並べ替える場合、優先順位付けなどのカスタマイズされた並べ替え順序が必要になる場合があります。特定の値が上部に表示されます。一般的なシナリオの 1 つは、通貨が混在している中で、USD などの特定の通貨を優先することです。
カスタムの優先順位に基づいて列を並べ替えるには、CASE 関数または DECODE 関数を利用できます。方法は次のとおりです:
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
各通貨に数値を割り当てることで、並べ替えでは値 1 の USD が優先され、次に BHT (2) が優先されます。 )、JPY (3)、MYR (4)。指定されていない他の通貨は、デフォルト値の 5 に該当します。
DECODE の使用 (Oracle 固有)
DECODE を使用すると、より簡潔な構文を実現できます。
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
これにより文字値が割り当てられます。 USD ('001') を最上位に配置し、残りの通貨はアルファベット順にソートします。
以上がOracle SQLでカスタム・ソートを実装して特定の値を優先するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。