2 つ以上の英数字、英字、または国別データ項目のうち、どれが最大値を持つかを判別する場合には、MAX または ORD-MAX 組み込み関数を使用します。 どの項目が最小値を持つのかを判別するには、MIN または ORD-MIN を使用します。 これらの関数は、照合シーケンスにしたがって評価します。
数値項目 (USAGE NATIONAL のあるものを含む) を比較するには、MAX、ORD-MAX、MIN、 または ORD-MIN を使用します。 これらの組み込み関数を使用すると、引数の代数値が比較されます。
MAX および MIN 関数は、指定された引数の 1 つの内容を返します。 例えば、プログラムに以下のデータ定義が含まれているとします。
05 Arg1 Pic x(10) Value "THOMASSON ". 05 Arg2 Pic x(10) Value "THOMAS ". 05 Arg3 Pic x(10) Value "VALLEJO ".
次のステートメントは、VALLEJObbb を Customer-record の最初の 10 文字位置に割り当てます (ここで b はブランク・スペースを表します)。
Move Function Max(Arg1 Arg2 Arg3) To Customer-record(1:10)
代わりに MIN を使用すると、THOMASbbbb が割り当てられます。
ORD-MAX および ORD-MIN 関数は、提供した引数のリストの中で最大値または最小値を持つ引数の (左からカウントした) 序数位置を表す整数を返します。 上記の例で ORD-MAX 関数を使用すると、数字関数への参照が有効場所にないので、コンパイラーはエラー・メッセージを出します。 以下に、ORD-MAX の有効な使用例を示します。
Compute x = Function Ord-max(Arg1 Arg2 Arg3)
上記のステートメントは、前の例と同じ引数が使用された場合、整数 3 を x に割り当てます。代わりに ORD-MIN を使用した場合には、整数 2 が返されます。 Arg1、Arg2、および Arg3 が配列 (テーブル) の連続エレメントであったなら、上の例はもっと現実的なものになると思われます。
任意の引数に国別項目を指定する場合、すべての引数をクラス国別と指定する必要があります。