ABAP Keyword Documentation → ABAP Dictionary → ABAP CDS in ABAP Dictionary → ABAP CDS - Views → ABAP CDS - DDL Statements → ABAP CDS - DEFINE VIEW → ABAP CDS - SELECT → ABAP CDS - SELECT, Predefined Functions
ABAP CDS - sql_functions
Other versions:
7.31 | 7.40 | 7.54
Syntax
... func( arg1[, arg2]... ) ...
Effect
Calls predefined SQL functions in a SELECT statement of a CDS view in ABAP CDS. For passed arguments arg1, arg2, ..., a predefined SQL function returns a character-like or numeric result. The possible functions are:
Numeric Functions
Function | Valid Argument Types | Meaning | Result Type |
---|---|---|---|
ABS(arg) | INT1,INT2,INT4,DEC,CURR, QUAN, FLTP | Absolute amount of arg | Data type of arg |
CEIL(arg) | INT1,INT2,INT4,DEC,CURR, QUAN, FLTP | Smallest integer number not less than the value of arg. | INT4 |
DIV(arg1, arg2) | INT1,INT2,INT4,DEC,CURR, QUAN without decimal places | Integer part of the division of arg1 by arg2The sign is assigned after the amounts are divided; positive if the arguments have the same sign, and negative if the arguments have different signs. Exception: arg2 has the value 0. | Data type arg1: hereDEC,CURR andQUAN are implemented after INT4. |
DIVISION(arg1, arg2, dec) | INT1,INT2,INT4,DEC, CURR, QUAN | Division of arg1 by arg2 Das Ergebnis wird auf dec Nachkommastellen gerundet. dec muss ein positives ganzzahligesZahlenliteral inklusive 0 sein, das nicht größerals der Maximalwert von 6 und der Länge von arg2 plus die Anzahl der Nachkommastellen von arg1 plus 1 ist. | DEC mit decNachkommastellen. Die Länge des Ergebnisses ist die Länge von arg1weniger die Nachkommastellen von arg1 plus die Nachkommastellen von arg2 plus dec. Dieser Wert darf nicht größer 31 sein. |
FLOOR(arg) | DEC,CURR, QUAN with decimal places | Largest integer number not greater than the value of arg | DEC without decimal places |
MOD(arg1, arg2) | INT1,INT2, INT4 | Integer remainder of the division of arg1 by arg2 | INT4 |
ROUND(arg, pos) | INT1,INT2,INT4,DEC, CURR, QUAN | Gerundeter Wert von arg. If pos is greaterthan 0, position pos is rounded to the right of the decimal separator.Ansonsten wird zur Position abs(pos)+1 links vom Dezimaltrennzeichen gerundet,wobei der Wert 0 entsteht, wenn nicht genügend Stellen vorhanden sind. pos muss ein Literal oder ein Feld einer Datenquelle vom TypINT1,INT2, INT4 sein. | Data type arg: hereINT1 andINT2 are implemented after INT4. |
String Functions
Function | Valid Argument Types | Meaning | Result Type |
---|---|---|---|
CONCAT(arg1, arg2) | CHAR,CLNT,LANG,NUMC,CUKY,UNIT,DATS,TIMS, SSTRING | Chaining of character strings in arg1 and arg2. Trailing blanks are ignored. | SSTRING, if an argument has the typeSSTRING, otherwise CHAR with the length of the result. |
LPAD(arg, len, src) | CHAR,CLNT,LANG,NUMC,CUKY,UNIT,DATS,TIMS, SSTRING | String of the length len with the content of argin which leading blanks are replaced by the characters from the argument src.If more characters are required than exist in src, the content of src is used repeatedly. If len is less than the length of arg, it is truncated on the right. Wenn src leer und lengrößer als die Länge von arg ist, bleibt arg unverändert. len muss ein positivesZahlenliteral größer 0 und kleiner gleich 1333 sein. src muss ein Zeichenliteral sein. | CHAR with length len |
REPLACE(arg1, arg2, arg3) | CHAR,CLNT,LANG,NUMC,CUKY,UNIT,DATS,TIMS, SSTRING | Character string arg1, in which all instances of arg2are replaced by the content from arg3. The replacement of letters is case-sensitive. | SSTRING, if arg1 or arg3 has the typeSSTRING, otherwise CHAR with the length of the result. |
SUBSTRING(arg, pos, len) | CHAR,CLNT,CUKY,DATS,LANG,NUMC, TIMS, UNIT | Teilfeld von arg ab der Position posin der Länge len. pos und len müssen positiveZahlenliterale ungleich Null sein. | CHAR or NUMC with a length of at least len |
In functions where an explicit length len is specified, the actual length of the result is defined when the CDS view is activated and is at least as long as len.
The following can be specified as the arguments arg:
- Literals of a suitable type.
- Suitable fields of a data source data_source of the current CDS view.
- Path expressions that identify a suitable field of a data source data_source.
- Predefined functions that return a suitable type, for example arithmetic expressions for numeric functions.
If an argument contains the null value, the result is always the null value. If the value range of a result type is overwritten, an exception is raised.
Beispiel
Die folgende CDS-View wendet eingebaute SQL-Funktionen in der SELECT-Liste
auf Spalten der Datenbanktabelle DEMO_EXPRESSIONS an. Das Programm DEMO_CDS_SQL_FUNCTIONS greift mit SELECT
auf die View zu.
define view demo_cds_sql_functions
as select from demo_expressions
{ abs( num1 ) as abs_num1,
ceil( fltp1 ) as ceil_fltp1,
floor( dec1 ) as floor_dec1,
div( num1, num2 ) as div_num1_num2,
mod( num1, num2 ) as mod_num1_num2,
division( dec2, dec3, 3 ) as dvision_dec2_dec3,
round( dec3, 2 ) as round_dec3,
concat( char1, char2 ) as concat_char1_char2,
lpad( char1, 10, 'x' ) as lpad_char1,
replace( char2, 'GHI', 'XXX' ) as replace_char2,
substring( char2, 2, 3 ) as substring_char2 }