IF式の定義を以下の図に示します。
図3.63 IF式の定義
IF式は“IF”の後の論理式が真のとき、“THEN”の後に続く項目参照、数値演算式、関数呼出し、またはリテラルの値を返します。
論理式が偽の場合、続く“ELSEIF”があるときは、その後の論理式を評価し、真ならば“THEN”の後に続く値を返します。
すべての論理式が偽になる場合、“ELSE”の後に続く項目参照、数値演算式、関数呼出し、またはリテラルの値を返します。
注意
IF式の返却する値、“THEN”および“ELSE”の後に指定する項目参照、数値演算式、関数呼出し、またはリテラルは、すべて同じ型になるように指定してください。
異なる型を指定した場合は、エラーになります。
型の詳細については、“3.1.5 データ型”を参照してください。
数値演算式の書式については、集計式と同じです。
数値演算式については、“3.5.1 集計式の書式”を参照
数値演算式における空の扱いについては、“3.5.2 数値演算式における空の扱い”を参照
IF式では指定した条件に従った値が返却されますが、処理の最適化によって、処理を行う順序は指定した順序や、条件通り動作するとは限りません。
IF式にcall関数を指定する場合、call関数の呼出し順序は指定した順序や条件通りに呼び出されるとは限らないため、ユーザー定義関数では、ファイルやデータベースの内容を参照するなどの副作用のある処理を行わないでください。
参照
詳細については、以下を参照してください。
項目参照については、“3.1.9 項目参照”
数値演算式については、“3.5 集計式”
関数呼出しについては、“3.8.6 関数呼出し”
リテラルについては“3.1.6 リテラル”
call関数については、“4.6.1 call関数”