Initial commit
This commit is contained in:
879
references/dtl-functions.md
Normal file
879
references/dtl-functions.md
Normal file
@@ -0,0 +1,879 @@
|
||||
# Data Transformation Language (DTL) Functions Reference
|
||||
|
||||
Complete reference for Data Transformation Language functions in SAP Data Intelligence.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Overview](#overview)
|
||||
2. [String Functions](#string-functions)
|
||||
3. [Numeric Functions](#numeric-functions)
|
||||
4. [Date and Time Functions](#date-and-time-functions)
|
||||
5. [Data Type Conversion Functions](#data-type-conversion-functions)
|
||||
6. [Miscellaneous Functions](#miscellaneous-functions)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Data Transformation Language (DTL) provides SQL-like functions for data processing in:
|
||||
|
||||
- Data Transform operator
|
||||
- Data preparation tools
|
||||
- Structured data operators
|
||||
|
||||
**Syntax Pattern:**
|
||||
```
|
||||
FUNCTION_NAME(argument1, argument2, ...)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## String Functions
|
||||
|
||||
Functions for extracting, manipulating, and returning string information.
|
||||
|
||||
### CONCAT
|
||||
|
||||
Concatenates two or more strings.
|
||||
|
||||
```sql
|
||||
CONCAT(string1, string2 [, string3, ...])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
CONCAT('Hello', ' ', 'World') -- Returns: 'Hello World'
|
||||
```
|
||||
|
||||
### SUBSTRING
|
||||
|
||||
Extracts a portion of a string.
|
||||
|
||||
```sql
|
||||
SUBSTRING(string, start_position [, length])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
SUBSTRING('SAP Data Intelligence', 5, 4) -- Returns: 'Data'
|
||||
```
|
||||
|
||||
### SUBSTRAFTER
|
||||
|
||||
Returns substring after the first occurrence of a delimiter.
|
||||
|
||||
```sql
|
||||
SUBSTRAFTER(string, delimiter)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
SUBSTRAFTER('user@domain.com', '@') -- Returns: 'domain.com'
|
||||
```
|
||||
|
||||
### SUBSTRBEFORE
|
||||
|
||||
Returns substring before the first occurrence of a delimiter.
|
||||
|
||||
```sql
|
||||
SUBSTRBEFORE(string, delimiter)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
SUBSTRBEFORE('user@domain.com', '@') -- Returns: 'user'
|
||||
```
|
||||
|
||||
### LEFT
|
||||
|
||||
Returns leftmost characters of a string.
|
||||
|
||||
```sql
|
||||
LEFT(string, length)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LEFT('SAP Data', 3) -- Returns: 'SAP'
|
||||
```
|
||||
|
||||
### RIGHT
|
||||
|
||||
Returns rightmost characters of a string.
|
||||
|
||||
```sql
|
||||
RIGHT(string, length)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
RIGHT('SAP Data', 4) -- Returns: 'Data'
|
||||
```
|
||||
|
||||
### LENGTH
|
||||
|
||||
Returns the length of a string.
|
||||
|
||||
```sql
|
||||
LENGTH(string)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LENGTH('SAP') -- Returns: 3
|
||||
```
|
||||
|
||||
### UPPER / UCASE
|
||||
|
||||
Converts string to uppercase.
|
||||
|
||||
```sql
|
||||
UPPER(string)
|
||||
UCASE(string)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
UPPER('sap data') -- Returns: 'SAP DATA'
|
||||
```
|
||||
|
||||
### LOWER / LCASE
|
||||
|
||||
Converts string to lowercase.
|
||||
|
||||
```sql
|
||||
LOWER(string)
|
||||
LCASE(string)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LOWER('SAP DATA') -- Returns: 'sap data'
|
||||
```
|
||||
|
||||
### TRIM
|
||||
|
||||
Removes leading and trailing spaces.
|
||||
|
||||
```sql
|
||||
TRIM(string)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
TRIM(' SAP ') -- Returns: 'SAP'
|
||||
```
|
||||
|
||||
### LTRIM
|
||||
|
||||
Removes leading spaces.
|
||||
|
||||
```sql
|
||||
LTRIM(string)
|
||||
```
|
||||
|
||||
### RTRIM
|
||||
|
||||
Removes trailing spaces.
|
||||
|
||||
```sql
|
||||
RTRIM(string)
|
||||
```
|
||||
|
||||
### LPAD
|
||||
|
||||
Pads string on the left to specified length.
|
||||
|
||||
```sql
|
||||
LPAD(string, length [, pad_string])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LPAD('42', 5, '0') -- Returns: '00042'
|
||||
```
|
||||
|
||||
### RPAD
|
||||
|
||||
Pads string on the right to specified length.
|
||||
|
||||
```sql
|
||||
RPAD(string, length [, pad_string])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
RPAD('SAP', 6, 'X') -- Returns: 'SAPXXX'
|
||||
```
|
||||
|
||||
### REPLACE
|
||||
|
||||
Replaces occurrences of a substring.
|
||||
|
||||
```sql
|
||||
REPLACE(string, search_string, replace_string)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
REPLACE('SAP HANA', 'HANA', 'DI') -- Returns: 'SAP DI'
|
||||
```
|
||||
|
||||
### LOCATE
|
||||
|
||||
Returns position of substring in string.
|
||||
|
||||
```sql
|
||||
LOCATE(string, substring [, start_position])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LOCATE('SAP Data Intelligence', 'Data') -- Returns: 5
|
||||
```
|
||||
|
||||
### ASCII
|
||||
|
||||
Returns ASCII code of first character.
|
||||
|
||||
```sql
|
||||
ASCII(string)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
ASCII('A') -- Returns: 65
|
||||
```
|
||||
|
||||
### CHAR
|
||||
|
||||
Returns character for ASCII code.
|
||||
|
||||
```sql
|
||||
CHAR(integer)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
CHAR(65) -- Returns: 'A'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Numeric Functions
|
||||
|
||||
Functions for mathematical operations on numeric data.
|
||||
|
||||
### ABS
|
||||
|
||||
Returns absolute value.
|
||||
|
||||
```sql
|
||||
ABS(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
ABS(-42) -- Returns: 42
|
||||
```
|
||||
|
||||
### CEIL
|
||||
|
||||
Rounds up to nearest integer.
|
||||
|
||||
```sql
|
||||
CEIL(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
CEIL(4.2) -- Returns: 5
|
||||
```
|
||||
|
||||
### FLOOR
|
||||
|
||||
Rounds down to nearest integer.
|
||||
|
||||
```sql
|
||||
FLOOR(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
FLOOR(4.8) -- Returns: 4
|
||||
```
|
||||
|
||||
### ROUND
|
||||
|
||||
Rounds to specified decimal places.
|
||||
|
||||
```sql
|
||||
ROUND(number [, decimal_places])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
ROUND(3.14159, 2) -- Returns: 3.14
|
||||
```
|
||||
|
||||
### MOD
|
||||
|
||||
Returns remainder of division.
|
||||
|
||||
```sql
|
||||
MOD(dividend, divisor)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
MOD(10, 3) -- Returns: 1
|
||||
```
|
||||
|
||||
### POWER
|
||||
|
||||
Returns base raised to exponent.
|
||||
|
||||
```sql
|
||||
POWER(base, exponent)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
POWER(2, 3) -- Returns: 8
|
||||
```
|
||||
|
||||
### SQRT
|
||||
|
||||
Returns square root.
|
||||
|
||||
```sql
|
||||
SQRT(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
SQRT(16) -- Returns: 4
|
||||
```
|
||||
|
||||
### EXP
|
||||
|
||||
Returns e raised to power.
|
||||
|
||||
```sql
|
||||
EXP(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
EXP(1) -- Returns: 2.71828...
|
||||
```
|
||||
|
||||
### LN
|
||||
|
||||
Returns natural logarithm.
|
||||
|
||||
```sql
|
||||
LN(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LN(2.71828) -- Returns: ~1
|
||||
```
|
||||
|
||||
### LOG
|
||||
|
||||
Returns logarithm with specified base.
|
||||
|
||||
```sql
|
||||
LOG(base, number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LOG(10, 100) -- Returns: 2
|
||||
```
|
||||
|
||||
### SIGN
|
||||
|
||||
Returns sign of number (-1, 0, or 1).
|
||||
|
||||
```sql
|
||||
SIGN(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
SIGN(-42) -- Returns: -1
|
||||
```
|
||||
|
||||
### UMINUS
|
||||
|
||||
Returns negation of number.
|
||||
|
||||
```sql
|
||||
UMINUS(number)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
UMINUS(42) -- Returns: -42
|
||||
```
|
||||
|
||||
### RAND
|
||||
|
||||
Returns random number between 0 and 1.
|
||||
|
||||
```sql
|
||||
RAND()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Date and Time Functions
|
||||
|
||||
Functions for date and time operations.
|
||||
|
||||
### CURRENT_UTCDATE
|
||||
|
||||
Returns current UTC date.
|
||||
|
||||
```sql
|
||||
CURRENT_UTCDATE()
|
||||
```
|
||||
|
||||
### CURRENT_UTCTIME
|
||||
|
||||
Returns current UTC time.
|
||||
|
||||
```sql
|
||||
CURRENT_UTCTIME()
|
||||
```
|
||||
|
||||
### CURRENT_UTCTIMESTAMP
|
||||
|
||||
Returns current UTC timestamp.
|
||||
|
||||
```sql
|
||||
CURRENT_UTCTIMESTAMP()
|
||||
```
|
||||
|
||||
### ADD_DAYS
|
||||
|
||||
Adds days to a date.
|
||||
|
||||
```sql
|
||||
ADD_DAYS(date, days)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
ADD_DAYS('2025-01-01', 30) -- Returns: '2025-01-31'
|
||||
```
|
||||
|
||||
### ADD_MONTHS
|
||||
|
||||
Adds months to a date.
|
||||
|
||||
```sql
|
||||
ADD_MONTHS(date, months)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
ADD_MONTHS('2025-01-15', 2) -- Returns: '2025-03-15'
|
||||
```
|
||||
|
||||
### ADD_YEARS
|
||||
|
||||
Adds years to a date.
|
||||
|
||||
```sql
|
||||
ADD_YEARS(date, years)
|
||||
```
|
||||
|
||||
### ADD_SECONDS
|
||||
|
||||
Adds seconds to a timestamp.
|
||||
|
||||
```sql
|
||||
ADD_SECONDS(timestamp, seconds)
|
||||
```
|
||||
|
||||
### DAYS_BETWEEN
|
||||
|
||||
Returns days between two dates.
|
||||
|
||||
```sql
|
||||
DAYS_BETWEEN(date1, date2)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
DAYS_BETWEEN('2025-01-01', '2025-01-31') -- Returns: 30
|
||||
```
|
||||
|
||||
### MONTHS_BETWEEN
|
||||
|
||||
Returns months between two dates.
|
||||
|
||||
```sql
|
||||
MONTHS_BETWEEN(date1, date2)
|
||||
```
|
||||
|
||||
### YEARS_BETWEEN
|
||||
|
||||
Returns years between two dates.
|
||||
|
||||
```sql
|
||||
YEARS_BETWEEN(date1, date2)
|
||||
```
|
||||
|
||||
### SECONDS_BETWEEN
|
||||
|
||||
Returns seconds between two timestamps.
|
||||
|
||||
```sql
|
||||
SECONDS_BETWEEN(timestamp1, timestamp2)
|
||||
```
|
||||
|
||||
### EXTRACT
|
||||
|
||||
Extracts date/time component.
|
||||
|
||||
```sql
|
||||
EXTRACT(component FROM date_or_timestamp)
|
||||
```
|
||||
|
||||
**Components:** YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
EXTRACT(YEAR FROM '2025-06-15') -- Returns: 2025
|
||||
```
|
||||
|
||||
### YEAR
|
||||
|
||||
Returns year from date.
|
||||
|
||||
```sql
|
||||
YEAR(date)
|
||||
```
|
||||
|
||||
### MONTH
|
||||
|
||||
Returns month from date (1-12).
|
||||
|
||||
```sql
|
||||
MONTH(date)
|
||||
```
|
||||
|
||||
### DAYOFMONTH
|
||||
|
||||
Returns day of month (1-31).
|
||||
|
||||
```sql
|
||||
DAYOFMONTH(date)
|
||||
```
|
||||
|
||||
### DAYOFYEAR
|
||||
|
||||
Returns day of year (1-366).
|
||||
|
||||
```sql
|
||||
DAYOFYEAR(date)
|
||||
```
|
||||
|
||||
### WEEK
|
||||
|
||||
Returns week number (1-53).
|
||||
|
||||
```sql
|
||||
WEEK(date)
|
||||
```
|
||||
|
||||
### ISOWEEK
|
||||
|
||||
Returns ISO week number.
|
||||
|
||||
```sql
|
||||
ISOWEEK(date)
|
||||
```
|
||||
|
||||
### QUARTER
|
||||
|
||||
Returns quarter (1-4).
|
||||
|
||||
```sql
|
||||
QUARTER(date)
|
||||
```
|
||||
|
||||
### HOUR
|
||||
|
||||
Returns hour (0-23).
|
||||
|
||||
```sql
|
||||
HOUR(timestamp)
|
||||
```
|
||||
|
||||
### MINUTE
|
||||
|
||||
Returns minute (0-59).
|
||||
|
||||
```sql
|
||||
MINUTE(timestamp)
|
||||
```
|
||||
|
||||
### SECOND
|
||||
|
||||
Returns second (0-59).
|
||||
|
||||
```sql
|
||||
SECOND(timestamp)
|
||||
```
|
||||
|
||||
### DAYNAME
|
||||
|
||||
Returns day name.
|
||||
|
||||
```sql
|
||||
DAYNAME(date)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
DAYNAME('2025-01-01') -- Returns: 'Wednesday'
|
||||
```
|
||||
|
||||
### MONTHNAME
|
||||
|
||||
Returns month name.
|
||||
|
||||
```sql
|
||||
MONTHNAME(date)
|
||||
```
|
||||
|
||||
### LAST_DAY
|
||||
|
||||
Returns last day of month.
|
||||
|
||||
```sql
|
||||
LAST_DAY(date)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LAST_DAY('2025-02-15') -- Returns: '2025-02-28'
|
||||
```
|
||||
|
||||
### NEXT_DAY
|
||||
|
||||
Returns next occurrence of weekday.
|
||||
|
||||
```sql
|
||||
NEXT_DAY(date, weekday)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Data Type Conversion Functions
|
||||
|
||||
Functions for converting between data types.
|
||||
|
||||
### TO_STRING
|
||||
|
||||
Converts to string.
|
||||
|
||||
```sql
|
||||
TO_STRING(value [, format])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
TO_STRING(12345) -- Returns: '12345'
|
||||
TO_STRING(3.14, '0.00') -- Returns: '3.14'
|
||||
```
|
||||
|
||||
### TO_INTEGER
|
||||
|
||||
Converts to integer.
|
||||
|
||||
```sql
|
||||
TO_INTEGER(value)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
TO_INTEGER('42') -- Returns: 42
|
||||
TO_INTEGER(3.7) -- Returns: 3
|
||||
```
|
||||
|
||||
### TO_DECIMAL
|
||||
|
||||
Converts to decimal.
|
||||
|
||||
```sql
|
||||
TO_DECIMAL(value [, precision, scale])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
TO_DECIMAL('123.45', 10, 2) -- Returns: 123.45
|
||||
```
|
||||
|
||||
### TO_FLOATING
|
||||
|
||||
Converts to floating point.
|
||||
|
||||
```sql
|
||||
TO_FLOATING(value)
|
||||
```
|
||||
|
||||
### TO_DATE
|
||||
|
||||
Converts to date.
|
||||
|
||||
```sql
|
||||
TO_DATE(string [, format])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
TO_DATE('2025-01-15', 'YYYY-MM-DD')
|
||||
TO_DATE('15/01/2025', 'DD/MM/YYYY')
|
||||
```
|
||||
|
||||
### TO_TIME
|
||||
|
||||
Converts to time.
|
||||
|
||||
```sql
|
||||
TO_TIME(string [, format])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
TO_TIME('14:30:00', 'HH24:MI:SS')
|
||||
```
|
||||
|
||||
### TO_DATETIME
|
||||
|
||||
Converts to datetime/timestamp.
|
||||
|
||||
```sql
|
||||
TO_DATETIME(string [, format])
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Miscellaneous Functions
|
||||
|
||||
### CASE
|
||||
|
||||
Conditional expression.
|
||||
|
||||
```sql
|
||||
CASE
|
||||
WHEN condition1 THEN result1
|
||||
WHEN condition2 THEN result2
|
||||
ELSE default_result
|
||||
END
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
CASE
|
||||
WHEN status = 'A' THEN 'Active'
|
||||
WHEN status = 'I' THEN 'Inactive'
|
||||
ELSE 'Unknown'
|
||||
END
|
||||
```
|
||||
|
||||
### COALESCE
|
||||
|
||||
Returns first non-null value.
|
||||
|
||||
```sql
|
||||
COALESCE(value1, value2, ...)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
COALESCE(phone, mobile, 'No number') -- Returns first non-null
|
||||
```
|
||||
|
||||
### IFNULL
|
||||
|
||||
Returns second value if first is null.
|
||||
|
||||
```sql
|
||||
IFNULL(value, replacement)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
IFNULL(discount, 0) -- Returns 0 if discount is null
|
||||
```
|
||||
|
||||
### NULLIF
|
||||
|
||||
Returns null if values are equal.
|
||||
|
||||
```sql
|
||||
NULLIF(value1, value2)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
NULLIF(quantity, 0) -- Returns null if quantity is 0
|
||||
```
|
||||
|
||||
### GREATEST
|
||||
|
||||
Returns largest value.
|
||||
|
||||
```sql
|
||||
GREATEST(value1, value2, ...)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
GREATEST(10, 20, 15) -- Returns: 20
|
||||
```
|
||||
|
||||
### LEAST
|
||||
|
||||
Returns smallest value.
|
||||
|
||||
```sql
|
||||
LEAST(value1, value2, ...)
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
LEAST(10, 20, 15) -- Returns: 10
|
||||
```
|
||||
|
||||
### MAP
|
||||
|
||||
Maps value to another value.
|
||||
|
||||
```sql
|
||||
MAP(input, value1, result1 [, value2, result2, ...] [, default])
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```sql
|
||||
MAP(status, 'A', 'Active', 'I', 'Inactive', 'Unknown')
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Documentation Links
|
||||
|
||||
- **Function Reference**: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/functionreference](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/functionreference)
|
||||
- **DTL Functions**: [https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/functionreference/function-reference-for-data-transformation-language](https://github.com/SAP-docs/sap-hana-cloud-data-intelligence/tree/main/docs/functionreference/function-reference-for-data-transformation-language)
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2025-11-22
|
||||
Reference in New Issue
Block a user