%TLOOKUPxx (テーブル要素の検索)

%TLOOKUP(arg : search-table {: alt-table})
%TLOOKUPLT(arg : search-table {: alt-table})
%TLOOKUPGE(arg : search-table {: alt-table})
%TLOOKUPGT(arg : search-table {: alt-table})
%TLOOKUPLE(arg : search-table {: alt-table})
次の関数は、次のように引数 と一致する値を求めて検索テーブル を検索します。
%TLOOKUP
正確に一致するもの。
%TLOOKUPLT
引数 に最も近いが、引数 よりも小さいもの。
%TLOOKUPLE
正確に一致しているか、または引数 に最も近いが引数 よりは小さい値。
%TLOOKUPGT
引数 に最も近いが、引数 より大きいもの。
%TLOOKUPGE
正確に一致しているか、または引数 に最も近いが引数 より大きい値。

値が指定された条件に一致する場合、検索テーブルの現在のテーブルの要素は条件を満たす要素に設定され、代替テーブルに対する現行テーブル要素が同じ要素に設定され、そして関数が値 *ON を戻します。

指定された条件に一致する値がない場合は、*OFF が戻されます。

最初の 2 つのパラメーターはどんなタイプであっても構いませんが、同じタイプでなければなりません。 これらの長さまたは小数点以下の桁数は、同じである必要はありません。

引数 または検索テーブル が ALTSEQ(*NONE) を指定して定義されている場合を除き、ALTSEQ テーブルが使用されます。

組み込み関数 %FOUND と %EQUAL は %LOOKUP 命令に続けて設定されません。

注: LOOKUP 命令コードとは異なり、%TLOOKUP はテーブルにのみ適用されます。配列内の値を検索するには %LOOKUP 組み込み関数を使用します。

%TLOOKUPxx 組み込み関数は、 順序テーブル (ASCEND または DESCEND キーワードが指定されたテーブル) を検索するために二分探索を使用します。 正しい順序になっていない順序配列を参照してください。

詳細については、配列命令または 組み込み関数を参照してください。

図 1. %TLOOKUPxx の例
 *..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
 /FREE
   *IN01 = %TLOOKUP('Paris':tab1);
   IF %TLOOKUP('Thunder Bay':tab1:tab2);
   // code to handle Thunder Bay
   ENDIF;
 /END-FREE