ホームページ >データベース >mysql チュートリアル >Oracle SQL で通貨結果をカスタムオーダーするにはどうすればよいですか?

Oracle SQL で通貨結果をカスタムオーダーするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-29 21:48:11855ブラウズ

How Can I Custom Order Currency Results in Oracle SQL?

Oracle SQL でのカスタム通貨順序

異なる通貨でトランザクションを処理する場合、トランザクションの順序をカスタマイズすると便利です。表示されます。一般的なニーズの 1 つは、USD などの特定の通貨を常にリストの先頭に表示し、その後に残りの通貨を昇順で表示することです。

Oracle SQL でこれを実現するには、CASE を使用できます。 ORDER BY 句の 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

この例では、USD には優先度 1 が割り当てられ、BHT には優先度 2 が割り当てられます。 。残りの通貨には、デフォルトの優先順位 5 が割り当てられます。結果は、USD を先頭に、BHT、JPY、MYR が続くように並べ替えられます。

DECODE 式 (Oracle 固有):

ORDER BY DECODE(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)

DECODE 関数は CASE 式と同様に機能します。値 (この場合は通貨) を受け取り、それを検索条件のリストと照合します。一致するものが見つかった場合は、対応する結果が返されます。それ以外の場合は、デフォルト値 (この場合は 5) が返されます。

注:

  • CASE 式または DECODE 式で使用される優先順位の番号は任意です。一意の値ですが、わかりやすくするために連番を使用することをお勧めします。
  • USD を先頭に表示したい場合他の通貨が存在するかどうかに関係なく、優先順位として文字値を使用できます。例:

    ORDER BY
      CASE
          WHEN currency = 'USD' THEN '001'
          ELSE currency
      END
  • このメソッドは、結果セットに表示される通貨の正確なリストを知っていることを前提としています。予期しない通貨がある場合は、使用される式に応じて、実際のアルファベット順または数値で並べ替えられます。

以上がOracle SQL で通貨結果をカスタムオーダーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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