CASE ステートメントは、複数の条件に基づいて実行パスを選択します。
構文
>>-CASE----+-| searched-case-statement-when-clause |-+----------> '-| simple-case-statement-when-clause |---' >----END CASE-------------------------------------------------->< simple-case-statement-when-clause |---expression--------------------------------------------------> .-------------------------------------------------------------. | .-------------------------------. | V V | | >--------WHEN--expression--THEN-----SQL-procedure-statement--;---+--+> >-----+------------------------------------------+--------------| | .-------------------------------. | | V | | '-ELSE-----SQL-procedure-statement--;---+--' searched-case-statement-when-clause .-------------------------------------------------------------------. | .-------------------------------. | V V | | |------WHEN--search-condition--THEN-----SQL-procedure-statement--;---+--+-> >----+------------------------------------------+---------------| | .-------------------------------. | | V | | '-ELSE-----SQL-procedure-statement--;---+--'
説明
注
例
SQL 変数 v_workdept の値によっては、 表 DEPARTMENT 内の更新列 DEPTNAME を適当な名前で更新しなければなりません。
以下の例では、simple-case-statement-when-clause の構文を使用して、 これを行う方法を示しています。
CASE v_workdept WHEN'A00' THEN UPDATE department SET deptname = 'DATA ACCESS 1'; WHEN 'B01' THEN UPDATE department SET deptname = 'DATA ACCESS 2'; ELSE UPDATE department SET deptname = 'DATA ACCESS 3'; END CASE
以下の例では、searched-case-statement-when-clause の構文を使用して、 これを行う方法を示しています。
CASE WHEN v_workdept = 'A00' THEN UPDATE department SET deptname = 'DATA ACCESS 1'; WHEN v_workdept = 'B01' THEN UPDATE department SET deptname = 'DATA ACCESS 2'; ELSE UPDATE department SET deptname = 'DATA ACCESS 3'; END CASE