Numeric operands

Numeric types are compatible only with other numeric types.

Table 1. Result data types with numeric operands
One operand Other operand Data type of the result
SMALLINT SMALLINT SMALLINT
INTEGER INTEGER INTEGER
INTEGER SMALLINT INTEGER
BIGINT SMALLINT BIGINT
BIGINT INTEGER BIGINT
BIGINT BIGINT BIGINT
DECIMAL(w,x) SMALLINT
DECIMAL(p,x) where
p = x+max(w-x,5)1
DECIMAL(w,x) INTEGER
DECIMAL(p,x)  where
p = x+max(w-x,11)1
DECIMAL(w,x) BIGINT
DECIMAL(p,x) where
p = x+max(w-x,19)1
DECIMAL(w,x) DECIMAL(y,z)
DECIMAL(p,s) where
p = max(x,z)+max(w-x,y-z)1s = max(x,z)
REAL REAL REAL
REAL DECIMAL, BIGINT, INTEGER, or SMALLINT DOUBLE
REAL BIGINT DOUBLE
DOUBLE DOUBLE, REAL, DECIMAL, BIGINT, INTEGER, or SMALLINT DOUBLE
DECFLOAT(n) SMALLINT DECFLOAT(n)
DECFLOAT(n) INTEGER DECFLOAT(n)
DECFLOAT(n) BIGINT DECFLOAT(34)
DECFLOAT(n) DECIMAL(<=16,s) DECFLOAT(n)
DECFLOAT(n) DECIMAL(>16,s) DECFLOAT (34)
DECFLOAT(n) REAL DECFLOAT(n)
DECFLOAT(n) DOUBLE DECFLOAT(n)
DECFLOAT(n) DECFLOAT(m) DECFLOAT(max(n,m))
Notes:
  1. Precision cannot exceed 31.