Entering content frame

This graphic is explained in the accompanying text Open SQL Type Propagation Locate the document in its SAP Library structure

When evaluating arithmetic expressions in SQL statements, Open SQL follows the type propagation rules shown in the following Table. FLOAT is treated like DOUBLE and NUMERIC is treated like DECIMAL.

Type propagation in arithmetic expressions

 

SMALLINT

INTEGER

BIGINT

REAL

DOUBLE

DECIMAL

FLOAT

NUMERIC

SMALLINT

SMALLINT

INTEGER

BIGINT

REAL

DOUBLE

DECIMAL

DOUBLE

DECIMAL

INTEGER

INTEGER

INTEGER

BIGINT

REAL

DOUBLE

DECIMAL

DOUBLE

DECIMAL

BIGINT

BIGINT

BIGINT

BIGINT

REAL

DOUBLE

DECIMAL

DOUBLE

DECIMAL

REAL

REAL

REAL

REAL

REAL

DOUBLE

DOUBLE

DOUBLE

REAL

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DECIMAL

DECIMAL

DECIMAL

DECIMAL

REAL

DOUBLE

DECIMAL

DOUBLE

DECIMAL

FLOAT

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

NUMERIC

DECIMAL

DECIMAL

DECIMAL

REAL

DOUBLE

DECIMAL

DOUBLE

DECIMAL

 

The following Table defines the result type of the evaluation of aggregate functions in set function expressions. The result of the aggregate functions MIN, MAX and SUM has the same type as its argument. SUM and AVG are only applicable on numeric data types. AVG returns a DECIMAL for exact numeric data types and DOUBLE for approximate numeric data types. The result of COUNT is always INTEGER.

Type propagations in set function specifications

 

MIN

MAX

SUM

AVG

COUNT

SMALLINT

SMALLINT

SMALLINT

SMALLINT

DECIMAL

INTEGER

INTEGER

INTEGER

INTEGER

INTEGER

DECIMAL

INTEGER

BIGINT

BIGINT

BIGINT

BIGINT

DECIMAL

INTEGER

REAL

REAL

REAL

REAL

DOUBLE

INTEGER

DOUBLE

DOUBLE

DOUBLE

DOUBLE

DOUBLE

INTEGER

DECIMAL

DECIMAL

DECIMAL

DECIMAL

DECIMAL

INTEGER

VARCHAR

VARCHAR

VARCHAR

 

 

INTEGER

LONGVARCHAR

LONGVARCHAR

LONGVARCHAR

 

 

INTEGER

CHAR

CHAR

CHAR

 

 

INTEGER

FLOAT

DOUBLE

DOUBLE

DOUBLE

DOUBLE

INTEGER

NUMERIC

NUMERIC

NUMERIC

NUMERIC

DECIMAL

INTEGER

 

 

 

Leaving content frame