IF...THEN...ELSEコマンドは、OLAP DMLプログラム内で使用すると、指定された条件に適合した場合にプログラム内の1つ以上の文を実行するコマンドです。オプションで、条件に一致しない場合に、かわりになる文または文のグループを実行することも可能です。
パラメータ
TRUE
またはFALSE
を返す有効なブール式。
Oracle OLAPは、ブール式がTRUE
である場合にstatement1引数を実行します。statement1はTHENと同じ行にある必要があります。
Oracle OLAPは、ブール式がFALSE
である場合にstatement2引数を実行します。statement2はELSEと同じ行にある必要があります。ELSE句を省略した場合、プログラムのIF...THEN...文全体の後ろにある文によって実行が継続されます。
使用上の注意
DOとともに使用するIF
IF文は、THENまたはELSEキーワード(あるいはその両方)をDO ... DOENDシーケンスとともに使用することによって、複数の文を条件付きで実行できます。例10-5「IF...THEN...ELSEの使用方法」を参照してください。
単一行か複数行か
IFを式として使用する場合、THENおよびELSEキーワードはIFと同じ行にある必要があります。IFをコマンドとして使用する場合は、THENおよびELSEは別々の行にある必要があります。
例
例10-5 IF...THEN...ELSEの使用方法
プログラム内の次の行は、IF...THEN...ELSE...の使用方法を示します。ブール式ANY(DOLLARS LT 200000)
がTRUE
である場合、THENの後の文(statement group 1
)が実行されます。式がFALSE
である場合、ELSEの後の文(statement group 2
)が実行されます。
IF ANY(DOLLARS LT 200000) THEN DO ... " (statement group 1) DOEND ELSE DO ... "(statement group 2) DOEND
例10-6 条件演算子としてのIFの使用方法
レポートを生成するプログラムで、引数としてプログラムに渡す年によって、前年の実績経費または当年の予算をレポートするとします。JOINCHARSファンクションの条件式は、単語ActualまたはBudgetが付加されたヘッダーを生成します。別の条件式でレポートに対する変数を選択します。プログラムの各行は次のとおりです。
ARGUMENT cur.year year LIMIT month TO year cur.year REPORT - HEADING JOINCHARS( 'Expenses: ' - IF cur.year LT 'Yr95' - THEN 'Actual FOR ' - ELSE 'Budget FOR ', - cur.year ) - IF cur.year LT 'Yr95' THEN actual ELSE budget