目次

Search

  1. はじめに
  2. タスクフローとリニアタスクフロー
  3. タスクフロー
  4. リニアタスクフロー

タスクフロー

タスクフロー

iif

iif

条件の結果に基づいて、指定した2つの値のうちの1つを返します。

構文

util:iif(
condition
,
val1
,
val2
)
次の表に、引数を示します。
引数
必須/オプション
説明
condition
必須
評価を行う条件。
TRUEまたはFALSEになる有効なトランスフォーメーション式を必要に応じて入力できます。
val1
必須
条件がTRUEのときに返す値。戻り値は常にこの引数で指定したデータ型になります。
別のiif式を含む、任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
val2
オプション
条件がFALSEのときに返す値。
別のiif式を含む、任意の有効なトランスフォーメーション式を入力できます。バイナリ以外の任意のデータ型を渡すことができます。
iif関数にFALSE (
val2
)条件は必要ありません。
val2
を省略すると、条件がFALSEの場合、関数は次のいずれかの値を返します。
  • val1
    がNumericデータ型の場合は0。
  • val1
    がStringデータ型の場合は、空の文字列。
  • val1
    がDate/Timeデータ型の場合はNULL。
例えば、次の式にはFALSE条件が含まれておらず、
val1
はStringデータ型であるため、decodeはFALSEと評価されたそれぞれの行に対して空の文字列を返します。
util:iif(SALES > 100, EMP_NAME)
次の表に、一部のサンプル値と戻り値を示します。
SALES
EMP_NAME
RETURN VALUE
150
John Smith
John Smith
50
Pierre Bleu
''
(empty string)
120
Sally Green
Sally Green
NULL
Greg Jones
''
(empty string)

戻り値

条件がTRUEの場合は
val1
条件がFALSEの場合は
val2
例えば、下記の式にはFALSE条件であるNULLが含まれるため、decodeはFALSEと評価されたそれぞれの行に対してNULLを返します。
util:iif(SALES > 100, EMP_NAME, NULL)
次の表に、一部のサンプル値と戻り値を示します。
SALES
EMP_NAME
RETURN VALUE
150
John Smith
John Smith
50
Pierre Bleu
NULL
120
Sally Green
Sally Green
NULL
Greg Jones
NULL

iifおよびデータ型

iifを使用した場合、戻り値のデータ型は最大の精度を持つ結果のデータ型と同じものとなります。
例えば、次のような式があるとします。
util:iif(SALES < 100, 1, .3333)
TRUEの結果(1)は整数であり、FALSEの結果(.3333)は小数です。Decimalデータ型は、Integerデータ型よりも精度が高くなります。したがって、戻り値のデータ型は常に固定小数点値です。

IIFの特殊な使用法

ネストしたIIF文を使用して、複数の条件をテストできます。以下の例は、各種条件をテストし、販売額が0または負の場合には0を返します。
util:iif(SALES > 0, util:iif(SALES < 50, SALARY1, util:iif(SALES < 100, SALARY2, util:iif( SALES < 200, SALARY3, BONUS))), 0 )