ABAP Keyword Documentation →  ABAP − Reference →  Processing Internal Data →  Numeric Calculations →  Numerical Functions

# nmax, nmin - Numeric Extremum Functions

Other versions: 7.31 | 7.40 | 7.54

### Syntax Forms

`... nmax|nmin( val1 = arg1 val2 = arg2 [val3 = arg3] ... [val9 = arg9] ) ...`

### Effect

These functions return the value of the greatest or the least of the arguments passed. A minimum of two arguments, `arg1` and `arg2`, and a maximum of nine arguments must be passed. Here, the optional input parameters `val3` to `val9` must be filled in ascending order without gaps. The arguments `arg1` to `arg9` are numeric expression positions.

The following applies to the data type of the return value:

• In an arithmetic expression, the arguments of the function contribute to the calculation type of the entire expression and the function is calculated using the calculation type. If an argument itself is an arithmetic expression, its operands contribute to the entire calculation type and the argument is also calculated using this type.

Notes

`result =  nmax|nmin( val1 = arg1 val2 = arg2 )`

the evaluation of the functions is equivalent to:

`IF num1 >= num2 | num1 <= num2.   result = num1. ELSE.   result = num2. ENDIF.`
When using more than two input parameters, an equivalent control structure would be more complex.

Example

Determines the lesser of two time stamps in packed numbers. Here, the initial value of the conditional operator `COND` is not regarded as the least value.

``````CONSTANTS max_ts TYPE timestamp VALUE 999999999999999.

DATA: ts1 TYPE timestamp,
ts2 TYPE timestamp.

GET TIME STAMP FIELD ts1.

DATA(min_ts) = nmin( val1 = COND timestamp( WHEN ts1 IS INITIAL
THEN max_ts ELSE ts1 )
val2 = COND timestamp( WHEN ts2 IS INITIAL
THEN max_ts ELSE ts2 ) ).
``````

### Executable Example

Extremum Functions `nmax`, `nmin`