In expressions that use only integer types, Derby promotes the type of the result to at least INTEGER. In expressions that mix integer with non-integer types, Derby promotes the result of the expression to the highest type in the expression. The following table shows the promotion of data types in expressions.
| Largest Type That Appears in Expression | Resulting Type of Expression | 
|---|---|
| DOUBLE PRECISION | DOUBLE PRECISION | 
| REAL | DOUBLE PRECISION | 
| DECIMAL | DECIMAL | 
| BIGINT | BIGINT | 
| INTEGER | INTEGER | 
| SMALLINT | INTEGER | 
-- returns a double precision VALUES 1 + 1.0e0 -- returns a decimal VALUES 1 + 1.0 -- returns an integer VALUES CAST (1 AS INT) + CAST (1 AS INT)