# Ausdrucksfunktionen

Verwenden Sie Funktionen, um Zeilenwerte zu transformieren, fehlende Daten zu behandeln oder zugehörige Werte abzurufen, wenn Sie Ausdrücke erstellen. Weitere Einzelheiten finden Sie unter [Erstellen von Formeln](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

Die unten aufgeführten Funktionen beschreiben Ausdrücke für Verschiebungsaufgaben in SaaS-verwalteten Bereitstellungs-, Lake-Bereitstellungs- und Replikationsaufgaben. Verwenden Sie die in Ihrem Editor angezeigte Funktionssignatur. Eckige Klammern in Signaturen kennzeichnen optionale Argumente; geben Sie die Klammern nicht ein.

Informationen zu CDC-Storage- und Streaming-Transform-Funktionen finden Sie unter [Umwandlungsfunktionen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/transformation-functions.htm). Für Speicher-, Transformations- und Data-Mart-Ausdrücke, die auf einer Cloud-Datenplattform ausgeführt werden, verwenden Sie die Funktionssyntax dieser Plattform.

## Stringfunktionen

Präfix- und Suffixfunktionen wirken auf den Anfang oder das Ende einer Zeichenfolge. Die Zeichenersetzung wirkt auf einzelne Zeichen, anstatt ein ganzes Präfix oder Suffix abzugleichen.

Argumente, Verhalten und Beispiele für String-Funktionen

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$CONCAT(X, Y)` | Verbindet die beiden Zeichenfolgen `X` und `Y` in dieser Reihenfolge. Gibt NULL zurück, wenn eines der Argumente NULL ist. Verschachteln Sie Aufrufe, um mehr als zwei Zeichenfolgen zusammenzuführen. | `$CONCAT('My', 'Picture')` gibt `'MyPicture'` zurück. `$CONCAT('My', NULL)` gibt NULL zurück. |
| `$INSTR(string, substring)` | Gibt die einsbasierte Position des ersten Vorkommens von `substring` in `string` zurück. Gibt 0 zurück, wenn die Teilzeichenfolge nicht gefunden wird. | `$INSTR('mystring', 'ing')` gibt `6` zurück. `$INSTR('mystring', 'xyz')` gibt `0` zurück. |
| `$LENGTH(string)` | Gibt die Anzahl der Zeichen in `string` zurück, nicht die Größe in Bytes. | `$LENGTH('mystring')` gibt `8` zurück. |
| `$LOWER(string)` | Gibt eine Kopie von `string` zurück, bei der ASCII-Buchstaben in Kleinbuchstaben umgewandelt wurden. | `$LOWER('ABC')` gibt `'abc'` zurück. |
| `$LTRIM(string[, characters])` | Entfernt Zeichen vom Anfang von `string`. Das optionale Argument `characters` ist eine Menge von zu entfernenden Zeichen, kein Präfix. Wenn weggelassen, werden Leerzeichen entfernt. | `$LTRIM('  orders')` gibt `'orders'` zurück. `$LTRIM('@@orders', '@')` gibt `'orders'` zurück. |
| `$REMOVE_PREFIX(string, prefix)` | Gibt eine Kopie von `string` zurück, bei der der angegebene Anfang `prefix` entfernt wurde. | `$REMOVE_PREFIX('mystring', 'my')` gibt `'string'` zurück. |
| `$REMOVE_SUFFIX(string, suffix)` | Gibt eine Kopie von `string` zurück, bei der die angegebene Endung `suffix` entfernt wurde. | `$REMOVE_SUFFIX('mystring', 'ing')` gibt `'mystr'` zurück. |
| `$REPLACE(string, pattern, replacement)` | Ersetzt jedes Vorkommen von `pattern` in `string` durch `replacement`. Alle drei Argumente sind erforderlich. Verwenden Sie eine leere Ersetzungszeichenfolge, um übereinstimmenden Text zu entfernen. | `$REPLACE('a-b-c', '-', '_')` gibt `'a_b_c'` zurück. `$REPLACE('a-b', '-', '')` gibt `'ab'` zurück. |
| `$REPLACE_CHARS(string, chars, replacement)` | Ersetzt jedes in `chars` aufgeführte Zeichen durch das Zeichen an derselben Position in `replacement`. Nicht aufgeführte Zeichen bleiben unverändert. Wenn eine Ersetzungsposition fehlt, wird das erste Ersetzungszeichen verwendet. | `$REPLACE_CHARS('mystring', 's', 'z')` gibt `'myztring'` zurück. `$REPLACE_CHARS('abcde', 'abcd', '123')` gibt `'1231e'` zurück. |
| `$REPLACE_PREFIX(string, prefix, replacement)` | Ersetzt das führende `prefix` in `string` durch `replacement`. | `$REPLACE_PREFIX('mystring', 'my', 'new')` gibt `'newstring'` zurück. |
| `$REPLACE_SUFFIX(string, suffix, replacement)` | Ersetzt das abschließende `suffix` in `string` durch `replacement`, anstatt jedes Vorkommen zu ersetzen. | `$REPLACE_SUFFIX('mystring', 'ing', 'new')` gibt `'mystrnew'` zurück. |
| `$RTRIM(string[, characters])` | Entfernt Zeichen am Ende von `string`. Das optionale Argument `characters` ist eine Menge von zu entfernenden Zeichen, kein Suffix. Wenn weggelassen, werden Leerzeichen entfernt. | `$RTRIM('orders  ')` gibt `'orders'` zurück. `$RTRIM('orders@@', '@')` gibt `'orders'` zurück. |
| `$SUBSTR(string, start[, length])` | Extrahiert Text aus `string`, beginnend an der einsbasierten Position `start`. `length` gibt die Anzahl der Zeichen an. Wenn weggelassen, werden die verbleibenden Zeichen zurückgegeben. | `$SUBSTR('abcdef', 2, 3)` gibt `'bcd'` zurück. |
| `$TRIM(string[, characters])` | Entfernt Zeichen an beiden Enden von `string`. Das optionale Argument `characters` ist eine Menge von zu entfernenden Zeichen, keine Teilzeichenfolge. Wenn weggelassen, werden Leerzeichen entfernt. | `$TRIM('  orders  ')` gibt `'orders'` zurück. `$TRIM('@#orders#@', '@#')` gibt `'orders'` zurück. |
| `$UNICODE(string)` | Gibt den numerischen Unicode-Codepunkt des ersten Zeichens in `string` zurück. Das Argument muss eine Zeichenfolge sein. | `$UNICODE('ABC')` gibt `65` zurück. |
| `$UPPER(string)` | Gibt eine Kopie von `string` zurück, bei der ASCII-Buchstaben in Großbuchstaben umgewandelt wurden. | `$UPPER('abc')` gibt `'ABC'` zurück. |

## Numerische Funktionen

Verwenden Sie diese Funktionen, um numerische Werte für die aktuelle Zeile zu berechnen. `$MAX` und `$MIN` vergleichen Argumente innerhalb der Zeile, nicht Werte über Zeilen hinweg.

Numerische Funktionsargumente, Verhalten und Beispiele

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$ABS(X)` | Gibt den absoluten Wert des numerischen Arguments `X` zurück. | `$ABS(-20)` gibt `20` zurück. |
| `$MAX(arg1, arg2, ...)` | Gibt den größten Wert unter den angegebenen numerischen Argumenten zurück. Geben Sie mindestens zwei Argumente an. | `$MAX(10, 4, 20, 9)` gibt `20` zurück. |
| `$MIN(arg1, arg2, ...)` | Gibt den kleinsten Wert unter den angegebenen numerischen Argumenten zurück. Geben Sie mindestens zwei Argumente an. | `$MIN(10, 4, 20, 9)` gibt `4` zurück. |
| `$RANDOM()` | Gibt eine pseudozufällige vorzeichenbehaftete Ganzzahl zurück. Akzeptiert keine Argumente. | `$RANDOM()` gibt eine Ganzzahl zurück, die negativ, null oder positiv sein kann. Sein Wert variiert zwischen den Aufrufen. |
| `$ROUND(value[, digits])` | Rundet `value` auf `digits` Dezimalstellen und gibt einen Gleitkommawert zurück. Wenn `digits` weggelassen wird, wird auf null Dezimalstellen gerundet. | `$ROUND(3.141592, 3)` gibt `3.142` zurück. |

## LOB-Funktionen

Diese Funktionen arbeiten mit Binary Large Objects (BLOBs). Das Argument size `N` gibt Bytes an, keine Zeichen.

Binärwertfunktionen

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$HEX(blob)` | Gibt hexadezimalen Text in Großbuchstaben zurück, der die Bytes von `blob` darstellt. Numerische Eingaben werden zuerst in Text konvertiert; das Ergebnis ist nicht die Maschinendarstellung der Zahl. | `$HEX(X'4142')` gibt `'4142'` zurück. |
| `$RANDOM_BLOB(N)` | Gibt `N` pseudozufällige Bytes zurück. Wenn `N` kleiner als 1 ist, wird ein Byte zurückgegeben. Verwenden Sie diese Funktion nicht als Garantie für kryptografische Zufälligkeit. | `$RANDOM_BLOB(4)` gibt ein Vier-Byte-BLOB zurück. Sein Wert variiert zwischen den Aufrufen. |
| `$ZERO_BLOB(N)` | Gibt einen BLOB zurück, der `N` Nullbytes enthält. | `$HEX($ZERO_BLOB(3))` gibt `'000000'` zurück. |

## Null-Prüffunktionen

Argumente, Verhalten und Beispiele der Null-Check-Funktion

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$COALESCE(X, Y, ...)` | Gibt das erste Nicht-NULL-Argument in der Reihenfolge der Argumente zurück. Geben Sie mindestens zwei Argumente an. Wenn alle Argumente NULL sind, ist das Ergebnis NULL. Eine leere Zeichenfolge ist nicht NULL. | `$COALESCE(NULL, 'Unknown')` gibt `'Unknown'` zurück. `$COALESCE('', 'Unknown')` gibt eine leere Zeichenfolge zurück. |
| `$IFNULL(X, Y)` | Gibt `X` zurück, wenn dieser Wert nicht NULL ist; andernfalls wird `Y` zurückgegeben. Gibt NULL zurück, wenn beide Argumente NULL sind. Geben Sie genau zwei Argumente an. | `$IFNULL(NULL, 'Unknown')` gibt `'Unknown'` zurück. `$IFNULL('Known', 'Unknown')` gibt `'Known'` zurück. |
| `$NULLIF(X, Y)` | Gibt NULL zurück, wenn `X` und `Y` gleich sind; andernfalls wird `X` zurückgegeben. Geben Sie genau zwei Argumente an. | `$NULLIF('Unknown', 'Unknown')` gibt NULL zurück. `$NULLIF('Known', 'Unknown')` gibt `'Known'` zurück. |

## Funktionen für Datum und Uhrzeit

Geben Sie eine Datums-, Uhrzeit- oder Datum/Uhrzeit-Zeichenfolge wie `'2026-10-08'`, `'12:34:56'` oder `'2026-10-08 12:34:56'` an. Setzen Sie Datumskonstanten in Anführungszeichen, damit Bindestriche nicht als Subtraktion interpretiert werden.

Datumsberechnung und -formatierung

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$DATE(date_string)` | Gibt das Datum aus `date_string` als Text im Format `YYYY-MM-DD` zurück. | `$DATE('2026-10-08')` gibt `'2026-10-08'` zurück. |
| `$DATETIME(datetime_string)` | Gibt das Datum und die Uhrzeit aus `datetime_string` als Text im Format `YYYY-MM-DD HH:MM:SS` zurück. | `$DATETIME('2026-10-08 12:34:56')` gibt `'2026-10-08 12:34:56'` zurück. |
| `$JULIANDAY(datetime_string)` | Gibt Tage einschließlich Bruchteilen seit Mittag in Greenwich am 24. November 4714 v. Chr. zurück. Subtrahieren Sie zwei julianische Tageswerte, um die Anzahl der verstrichenen Tage zu berechnen. | `$JULIANDAY('2000-01-01 12:00:00')` gibt `2451545.0` zurück. `$JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08')` gibt `1.0` zurück. |
| `$STRFTIME(format, datetime_string)` | Gibt mit `format` formatierten Text zurück. Das Format steht vor der Datums- oder Datum/Uhrzeit-Eingabe. | `$STRFTIME('%Y-%m', '2026-10-08')` gibt `'2026-10'` zurück. |
| `$TIME(time_string)` | Gibt die Uhrzeit aus `time_string` als Text im Format `HH:MM:SS` zurück. | `$TIME('12:34:56')` gibt `'12:34:56'` zurück. |

### Format-Ersetzungen

Kombinieren Sie die folgenden Ersetzungen mit literalen Trennzeichen in `$STRFTIME`. Beispielsweise formatiert `'%Y-%m-%d %H:%M:%S'` sowohl das Datum als auch die Uhrzeit. Eine nicht unterstützte Ersetzung gibt NULL zurück.

Formatersetzungen für Datum und Uhrzeit

| Ersetzung | Bedeutung |
| --- | --- |
| `%d` | Tag des Monats, 01-31. |
| `%H` | Stunde, 00-24. |
| `%f` | Sekunden mit Bruchteil, SS.SSS. |
| `%j` | Tag des Jahres, 001-366. |
| `%J` | Julianische Tagesnummer. |
| `%m` | Monat, 01-12. |
| `%M` | Minute, 00-59. |
| `%s` | Sekunden seit dem 1. Januar 1970, 00:00:00 UTC. |
| `%S` | Sekunden, 00-59. |
| `%w` | Wochentag, 0-6; Sonntag ist 0. |
| `%W` | Woche des Jahres, 00-53; Wochen beginnen am Montag. |
| `%Y` | Jahr, 0000-9999. |
| `%%` | Ein literales Prozentzeichen. |

## Datenanreicherungsfunktionen

Verwenden Sie einen Lookup, um einen zugehörigen Wert, wie beispielsweise einen Abteilungsnamen, aus einer Tabelle im Quell- oder Zielendpunkt hinzuzufügen.

Argumente, Verhalten und Beispiele für Datenanreicherungsfunktionen

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Ruft den Wert von `expression` aus `table` des Quellendpunkts in `schema` für den Datensatz ab, der `condition` entspricht. Die Bedingungsparameter stellen der Reihe nach Werte für ihre Platzhalter bereit. | `$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)` ruft den entsprechenden Abteilungsnamen aus der Quelle ab. |
| `$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Ruft den Wert von `expression` aus `table` des Zielendpunkts in `schema` für den Datensatz ab, der `condition` entspricht. Die Bedingungsparameter stellen der Reihe nach Werte für ihre Platzhalter bereit. | `$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)` ruft den übereinstimmenden Abteilungsnamen aus dem Ziel ab. |

`condition_params` stellt eine kommagetrennte Liste von Argumenten dar, nicht ein einzelnes Array-Argument. Beide Funktionen verwenden die folgenden Parameter:

Lookup-Parameter und ihre Beziehungen

| Parameter | Bedeutung |
| --- | --- |
| `time_to_live` | Erforderliche Cache-Lebensdauer, ohne Standardwert. Geben Sie die Cache-Lebensdauer in Sekunden an, `'NO_CACHING'`, um das Caching zu deaktivieren, oder `'NO_EXPIRATION'`, um zwischengespeicherte Ergebnisse ohne Ablauf beizubehalten.<br><br>Kurze Lebensdauern aktualisieren sich häufig ändernde Daten. Längere Lebensdauern reduzieren Endpunktabfragen, können jedoch zwischengespeicherte Werte zurückgeben, nachdem sich die Lookup-Daten geändert haben. Verwenden Sie kein Ablaufdatum nur für Daten, die sich nicht ändern. |
| `schema` | Schema, das die Nachschlagetabelle enthält, als Text bereitgestellt. |
| `table` | Tabelle, die innerhalb dieses Schemas abgefragt werden soll, als Text angegeben. |
| `expression` | SQL-Ausdruck, der einen Spaltenwert auswählt, wie z. B. `'DEPARTMENT_NAME'` oder `'PRICE * 1.2'`. Verwenden Sie den SQL-Dialekt des Endpunkts, auf den zugegriffen wird, nicht die Funktionssyntax des äußeren Ausdrucks. |
| `condition` | SQL-Bedingung, die den Lookup-Datensatz identifiziert. Verwenden Sie den Dialekt und die Platzhaltersyntax des aufgerufenen Endpunkts: zum Beispiel `:1` und `:2` für Oracle oder `?` für Microsoft SQL Server. |
| `condition_params` | Werte, die an die Bedingungsplatzhalter gebunden sind, in der entsprechenden Reihenfolge. Spaltenparameter wie `$COMPANY_ID` und `$DEPARTMENT_ID` liefern Werte aus der aktuellen Zeile. |

Indizieren Sie die Lookup-Felder, um die Abfragekosten zu senken. Wählen Sie eine Bedingung aus, die den gewünschten Datensatz identifiziert, und legen Sie den Datentyp der hinzugefügten Spalte so fest, dass er dem ausgewählten Wert entspricht.

InformationshinweisDas Testen von Aufrufen von `$SOURCE_LOOKUP` und `$TARGET_LOOKUP` wird nicht unterstützt. Siehe [Ausdrücke testen](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm#Testing).

### Beispiel für Quellensuche

Für eine Oracle-Quelle ruft der folgende Ausdruck `DEPARTMENT_NAME` aus `HR.DEPARTMENTS` ab und speichert das Ergebnis für 60 Sekunden im Cache:

```
$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)
```

Wenn die aktuelle Zeile `DEPARTMENT_ID` 10 aufweist und der übereinstimmende Lookup-Datensatz `'Sales'` enthält, ist das Ergebnis `'Sales'`.

Verwenden Sie für eine Microsoft SQL Server-Quelle deren Syntax für Bedingungsplatzhalter. Dieses Beispiel bindet Unternehmens- und Abteilungswerte in dieser Reihenfolge:

```
$SOURCE_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'COMPANY_ID=? AND DEPARTMENT_ID=?', $COMPANY_ID, $DEPARTMENT_ID)
```

### Beispiel für Zielsuche

Für ein Microsoft SQL Server-Ziel fragen Sie die Zieltabelle mit dessen SQL-Dialekt ab:

```
$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)
```

Wenn der Ziel-Lookup-Datensatz für Abteilung 10 `'Sales'` enthält, ist das Ergebnis für einen Eingabewert von 10 `'Sales'`.

## Vorgangsfunktionen

Argumente, Verhalten und Beispiele der Operationsfunktion

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)` | Gibt das von Ihnen für jede Quelloperation angegebene Flag zurück. Die Reihenfolge der Argumente ist Löschen, Aktualisieren, dann Einfügen. Verwenden Sie eine dedizierte Spalte zum Speichern der Flags und geben Sie Flag-Werte an, die ihrem Datentyp entsprechen. | `$OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted')` gibt `'Updated'` für eine Aktualisierung zurück. |

In Qlik Replicate ändert diese Funktion auch die Behandlung von Löschvorgängen: Sie behält den entsprechenden Zieldatensatz bei und kennzeichnet ihn mit `value_on_delete`. Dieses Verhalten bei der Löschverarbeitung erfordert eine Bestätigung für Qlik Talend Cloud Data Integration.

## Logische Funktionen

Bedingte Wertauswahl

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$IFF(boolean_expression, true_value, false_value)` | Gibt `true_value` zurück, wenn `boolean_expression` als wahr ausgewertet wird; andernfalls wird `false_value` zurückgegeben. Geben Sie zuerst die Bedingung an, gefolgt von den beiden Ergebniswerten. | `$IFF(10 > 5, 'High', 'Low')` gibt `'High'` zurück. `$IFF(3 > 5, 'High', 'Low')` gibt `'Low'` zurück. |

## Sonstige Funktionen

Musterabgleich und Werttypen

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$LIKE(pattern, string[, escape_character])` | Gibt 1 bei einer Übereinstimmung oder 0 bei keiner Übereinstimmung zurück; eine NULL-Eingabe ergibt NULL. `%` stimmt mit null oder mehr Zeichen überein; `_` stimmt mit einem überein. Beim Abgleich wird standardmäßig die Groß- und Kleinschreibung von ASCII-Buchstaben ignoriert. Das optionale Escape-Zeichen besteht aus einem Zeichen. Das Muster steht an erster Stelle, im Gegensatz zum Operator `LIKE` . | `$LIKE('A%', 'Alice')` gibt `1` zurück. `$LIKE('10!%', '10%', '!')` Gibt `1` zurück. |
| `$TYPEOF(expression)` | Gibt die Speicherklasse des Werts zurück: `'null'`, `'integer'`, `'real'`, `'text'` oder `'blob'`. Dies ist nicht der konfigurierte Ausgabespaltentyp. | `$TYPEOF(12.5)` gibt `'real'` zurück. |

## Hashfunktionen

Argumente, Verhalten und Beispiele für Hash-Funktionen

| Funktion | Verhalten und Argumente | Beispiel und Ergebnis |
| --- | --- | --- |
| `$SHA256(string)` | Gibt den hexadezimalen SHA-256-Hash der Eingabezeichenfolge zurück. | `$SHA256('abc')` gibt `ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad` zurück. |

Ein Hash ist keine Verschlüsselung. Vorhersehbare Eingabewerte können weiterhin durch den Vergleich ihrer Hashwerte identifiziert werden.