Oracle PL/SQL ケースステートメント

Oracle Pl Sql Kesusutetomento



制御フローは、プログラミングにおける主要なビルディング ブロックの 1 つです。プログラム内でさまざまなコードブロックが実行される順序を定義します。

ほとんどのプログラミング言語と同様に、Oracle PL/SQL 言語は、IF-THEN、CASE、FOR、WHILE などのさまざまな制御フロー ステートメントを提供します。







この投稿では、PL/SQL で CASE ステートメントを使用して、Oracle クエリに制御フローを導入する方法を学びます。



CASEステートメントの紹介

CASE ステートメントを使用すると、一連のステートメントを定義できます。その後、case ステートメントは、指定された条件に基づいて、実行するシーケンスを 1 つ選択します。



読みやすさを維持しながら、一連の if-then ブロックを宣言するより効率的な方法と考えてください。





次のように、Oracle の CASE ステートメントの構文を表現できます。

場合
WHEN 条件1 THEN 結果1
WHEN 条件2 THEN 結果2
...
ELSE 結果
終わり

CASE ステートメントは、この構文の WHEN 句の各条件を評価します。



ステートメントが一致するステートメントを見つけると、一致する結果が返されます。ただし、場合によっては、case ステートメントで一致する条件が見つからないことがあります。このようなシナリオでは、ステートメントは ELSE ブロックで定義された結果を実行します。

ノート : ELSE ブロックはオプションです。利用できない場合、データベース エンジンは次の構文を使用します。

それ以外:
RAISE CASE_NOT_FOUND;

これにより、データベース エンジンは、一致する条件がない場合に例外を発生させ、実行を一時停止できます。

例 1: CASE ステートメントの基本的な例

この例は、Oracle での case 演算子の基本的な使用例を示しています。

宣言する
年齢番号;
エントリ char(10);
始める
年齢:= 24;
ケース年齢
いつ 17
エントリ:=「定義済み」;
いつ 24
エントリ:= '9.99';
いつ 45
エントリ:='15.99';
それ以外
エントリ:=「許可されていません」;
エンドケース;
DBMS_OUTPUT.PUT_LINE(エントリ);
終わり;

提供された図は、一致する条件をテストし、対応するステータスを返す必要があります。たとえば、一致条件が 24 であるため、句は次のように返されます。

9.99

例 2: データベース テーブルを使用した CASE ステートメント

この例では、データベース テーブルで case ステートメントを使用します。

first_name、last_name、salary、
場合
給与が 2500 の場合は「高」
そうでなければ「不明」
給与ステータスとして終了
従業員から;

提供されたクエリは、case ステートメントを使用して、従業員のテーブルから給与の範囲をテストします。

結果の値は次のようになります。

結論

この投稿では、Oracle の case ステートメントを使用してさまざまな条件をテストし、条件が真の場合にアクションを実行する方法を学びました。