MOD
Returns the remainder of a division calculation. For example, MOD(8,5) returns 3.
Syntax
MOD( numeric_value, divisor )
The following table describes the arguments for this command:
Argument | Required/ Optional | Description |
---|
numeric_value | Required | Numeric datatype. The values you want to divide. You can enter any valid transformation expression. |
divisor | Required | The numeric value you want to divide by. The divisor cannot be 0. |
Return Value
Numeric value of the datatype you pass to the function. The remainder of the numeric value divided by the divisor.
NULL if a value passed to the function is NULL.
Examples
The following expression returns the modulus of the values in the PRICE port divided by the values in the QTY port:
MOD( PRICE, QTY )
PRICE | QTY | RETURN VALUE |
---|
10.00 | 2 | 0 |
12.00 | 5 | 2 |
9.00 | 2 | 1 |
15.00 | 3 | 0 |
NULL | 3 | NULL |
20.00 | NULL | NULL |
25.00 | 0 | Error. Integration Service does not write row. |
The last row (25, 0) produced an error because you cannot divide by 0. To avoid dividing by 0, you can create an expression similar to the following, which returns the modulus of Price divided by Quantity only if the quantity is not 0. If the quantity is 0, the function returns NULL:
MOD( PRICE, IIF( QTY = 0, NULL, QTY ))
PRICE | QTY | RETURN VALUE |
---|
10.00 | 2 | 0 |
12.00 | 5 | 2 |
9.00 | 2 | 1 |
15.00 | 3 | 0 |
NULL | 3 | NULL |
20.00 | NULL | NULL |
25.00 | 0 | NULL |
The last row (25, 0) produced a NULL rather than an error because the IIF function replaces NULL with the 0 in the QTY port.