An expression specifies a value that is generated, if required, by applying arithmetic operators to values. A list of expressions (expression_list) is often used in an SQL statement.
A distinction is made between the following arithmetic operators:
●
Additive
operators
+ Addition
 Subtraction
●
Multiplicative
operators
* Multiplication
/ Division
DIV integer division
MOD remainder after integer division
<expression> ::=
<term>

<expression> + <term>

<expression>  <term>
<expression_list> ::= (<expression>,...)
<term> ::=
<factor>

<term> * <factor>

<term> / <factor>

<term> DIV <factor>

<term> MOD <factor>
<factor> ::=
[<sign>] <value_spec>

[<sign>] <column_spec>

[<sign>] <function_spec>

[<sign>] <set_function_spec>

<scalar_subquery>

<expression>
<sign> ::= +  
SQL Tutorial, Arithmetic Operations
The arithmetic operators can only be applied to numeric data types.

Result of an expression 
expression 
Value with any data type 
factor supplies a NULL value 

factor supplies a special NULL value 

expression leads to a division by 0 
Special NULL value 
expression leads to an overflow of the internal temporary result 
Special NULL value 
If no parentheses are used, the operators have the following precedence:
...
1. The sign (+  ) has a higher precedence than the additive and multiplicative operators.
2. The multiplicative operators have a higher precedence than the additive operators.
3. The multiplicative operators have different priorities.
4. The additive operators have different priorities.
5. Operators with the same precedence are evaluated from left to right.
Operand1 (a) 
Operand2 (b) 
Result 
Fixed Point
Number 
Fixed point
number 
Fixed point
number 
The data type of the result depends on the operation as well as on the precision and number of decimal places of the operands.
Note that the data type of a column determines its name, and not the precision and number of decimal places in the current value.
The result of addition, subtraction, and multiplication is generated from a temporary result which can have more than 38 valid digits. If the temporary result has no more than 38 valid digits, the final result is equal to the temporary result. Otherwise, a result is generated as a floating point number with 38 places. Decimal places are truncated if necessary.
Condition 
Operator 
Result 
max(ps,p's') 
+,  
Fixed point
number 
(p+p')<=38 
* 
Fixed point
number 
(ps+s')<=38 
/ 
Fixed point
number 
Condition 
Operator 
Result 
ABS (a)<1E38
and 
DIV 
TRUNC (a/b) 
b=0 
DIV 
Special NULL value 
ABS(a)>=1E38
and 
DIV 
Error message 
ABS(a)<1E38
and 
MOD 
ab*(a DIV b) 
b=0 
MOD 
A 
ABS(a)>=1E38
and 
MOD 
Error message 
If one operand is a floating point number, the result of the arithmetic operation is a floating point number.