# Expressiefuncties

Gebruik functies om rijwaarden te transformeren, ontbrekende gegevens te verwerken of gerelateerde waarden op te halen bij het samenstellen van expressies. Ga voor meer informatie naar [Expressies bouwen](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

De onderstaande functies beschrijven expressies voor verplaatsingstaken in door SaaS beheerde tussenopslag-, lake-tussenopslag- en replicatietaken. Gebruik de functiesignatuur die in uw editor wordt weergegeven. Vierkante haken in signaturen geven optionele argumenten aan; voer de haken niet in.

Voor CDC Storage- en Streaming Transform-functies, zie [Transformatiefuncties](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/transformation-functions.htm). Voor opslag-, transformatie- en datamart-expressies die worden uitgevoerd op een cloud-dataplatform gebruikt u de functiesyntaxis van dat platform.

## Tekenreeksfuncties

Prefix- en suffixfuncties werken op het begin of het einde van een tekenreeks. Tekenvervanging werkt op afzonderlijke tekens in plaats van een heel voorvoegsel of achtervoegsel te matchen.

Argumenten, gedrag en voorbeelden van stringfuncties

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$CONCAT(X, Y)` | Voegt de twee tekenreeksen `X` en `Y` samen, in die volgorde. Retourneert NULL als een van beide argumenten NULL is. Nest aanroepen om meer dan twee tekenreeksen samen te voegen. | `$CONCAT('My', 'Picture')` retourneert `'MyPicture'`. `$CONCAT('My', NULL)` retourneert NULL. |
| `$INSTR(string, substring)` | Retourneert de op 1 gebaseerde positie van het eerste voorkomen van `substring` in `string`. Retourneert 0 als de substring niet wordt gevonden. | `$INSTR('mystring', 'ing')` retourneert `6`. `$INSTR('mystring', 'xyz')` retourneert `0`. |
| `$LENGTH(string)` | Retourneert het aantal tekens in `string`, niet de grootte in bytes. | `$LENGTH('mystring')` retourneert `8`. |
| `$LOWER(string)` | Retourneert een kopie van `string` waarbij ASCII-letters zijn omgezet naar kleine letters. | `$LOWER('ABC')` retourneert `'abc'`. |
| `$LTRIM(string[, characters])` | Verwijdert tekens aan het begin van `string`. Het optionele argument `characters` is een set tekens om te verwijderen, geen prefix. Indien weggelaten, worden spaties verwijderd. | `$LTRIM('  orders')` retourneert `'orders'`. `$LTRIM('@@orders', '@')` retourneert `'orders'`. |
| `$REMOVE_PREFIX(string, prefix)` | Retourneert een kopie van `string` waarbij het opgegeven begin `prefix` is verwijderd. | `$REMOVE_PREFIX('mystring', 'my')` retourneert `'string'`. |
| `$REMOVE_SUFFIX(string, suffix)` | Retourneert een kopie van `string` waarbij het opgegeven einde `suffix` is verwijderd. | `$REMOVE_SUFFIX('mystring', 'ing')` retourneert `'mystr'`. |
| `$REPLACE(string, pattern, replacement)` | Vervangt elk exemplaar van `pattern` in `string` door `replacement`. Alle drie de argumenten zijn verplicht. Gebruik een lege vervangende tekenreeks om overeenkomende tekst te verwijderen. | `$REPLACE('a-b-c', '-', '_')` retourneert `'a_b_c'`. `$REPLACE('a-b', '-', '')` retourneert `'ab'`. |
| `$REPLACE_CHARS(string, chars, replacement)` | Vervangt elk teken dat wordt vermeld in `chars` door het teken op dezelfde positie in `replacement`. Niet-vermelde tekens blijven ongewijzigd. Als een vervangingspositie ontbreekt, wordt het eerste vervangingsteken gebruikt. | `$REPLACE_CHARS('mystring', 's', 'z')` retourneert `'myztring'`. `$REPLACE_CHARS('abcde', 'abcd', '123')` retourneert `'1231e'`. |
| `$REPLACE_PREFIX(string, prefix, replacement)` | Vervangt de beginnende `prefix` in `string` door `replacement`. | `$REPLACE_PREFIX('mystring', 'my', 'new')` retourneert `'newstring'`. |
| `$REPLACE_SUFFIX(string, suffix, replacement)` | Vervangt het afsluitende `suffix` in `string` door `replacement`, in plaats van elk voorkomen te vervangen. | `$REPLACE_SUFFIX('mystring', 'ing', 'new')` retourneert `'mystrnew'`. |
| `$RTRIM(string[, characters])` | Verwijdert tekens aan het einde van `string`. Het optionele `characters` argument is een verzameling tekens die moeten worden verwijderd, geen achtervoegsel. Indien weggelaten, worden spaties verwijderd. | `$RTRIM('orders  ')` retourneert `'orders'`. `$RTRIM('orders@@', '@')` retourneert `'orders'`. |
| `$SUBSTR(string, start[, length])` | Extraheert tekst uit `string`, beginnend bij de op 1 gebaseerde positie `start`. `length` geeft het aantal tekens aan. Indien weggelaten, worden de resterende tekens geretourneerd. | `$SUBSTR('abcdef', 2, 3)` retourneert `'bcd'`. |
| `$TRIM(string[, characters])` | Verwijdert tekens aan beide uiteinden van `string`. Het optionele argument `characters` is een verzameling tekens die moeten worden verwijderd, geen substring. Indien weggelaten, worden spaties verwijderd. | `$TRIM('  orders  ')` retourneert `'orders'`. `$TRIM('@#orders#@', '@#')` retourneert `'orders'`. |
| `$UNICODE(string)` | Retourneert het numerieke Unicode-codepunt van het eerste teken in `string`. Het argument moet een string zijn. | `$UNICODE('ABC')` retourneert `65`. |
| `$UPPER(string)` | Retourneert een kopie van `string` waarin ASCII-letters zijn omgezet naar hoofdletters. | `$UPPER('abc')` retourneert `'ABC'`. |

## Numerieke functies

Gebruik deze functies om numerieke waarden voor de huidige rij te berekenen. `$MAX` en `$MIN` vergelijken argumenten binnen de rij, niet waarden over rijen heen.

Numerieke functieargumenten, gedrag en voorbeelden

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$ABS(X)` | Retourneert de absolute waarde van het numerieke argument `X`. | `$ABS(-20)` retourneert `20`. |
| `$MAX(arg1, arg2, ...)` | Retourneert de grootste waarde van de opgegeven numerieke argumenten. Geef ten minste twee argumenten op. | `$MAX(10, 4, 20, 9)` retourneert `20`. |
| `$MIN(arg1, arg2, ...)` | Retourneert de kleinste waarde uit de opgegeven numerieke argumenten. Geef ten minste twee argumenten op. | `$MIN(10, 4, 20, 9)` retourneert `4`. |
| `$RANDOM()` | Retourneert een pseudowillekeurig geheel getal met teken. Accepteert geen argumenten. | `$RANDOM()` retourneert een geheel getal dat negatief, nul of positief kan zijn. De waarde ervan varieert tussen aanroepen. |
| `$ROUND(value[, digits])` | Rondt `value` af op `digits` decimalen en retourneert een floating-pointwaarde. Als `digits` wordt weggelaten, wordt afgerond op nul decimalen. | `$ROUND(3.141592, 3)` retourneert `3.142`. |

## LOB-functies

Deze functies werken met binary large objects (BLOB's). Het argument size `N` specificeert bytes, geen tekens.

Functies voor binaire waarden

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$HEX(blob)` | Retourneert hexadecimale tekst in hoofdletters die de bytes van `blob` vertegenwoordigt. Numerieke invoer wordt eerst geconverteerd naar tekst; het resultaat is niet de machinerepresentatie van het getal. | `$HEX(X'4142')` retourneert `'4142'`. |
| `$RANDOM_BLOB(N)` | Retourneert `N` pseudowillekeurige bytes. Als `N` kleiner is dan 1, wordt één byte geretourneerd. Gebruik deze functie niet als garantie voor cryptografische willekeurigheid. | `$RANDOM_BLOB(4)` retourneert een BLOB van vier bytes. De waarde ervan varieert tussen aanroepen. |
| `$ZERO_BLOB(N)` | Retourneert een BLOB met `N` nulbytes. | `$HEX($ZERO_BLOB(3))` retourneert `'000000'`. |

## Null-controlefuncties

Argumenten, gedrag en voorbeelden van de null-controlefunctie

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$COALESCE(X, Y, ...)` | Retourneert het eerste niet-NULL-argument, in de volgorde van de argumenten. Geef ten minste twee argumenten op. Als alle argumenten NULL zijn, is het resultaat NULL. Een lege tekenreeks is niet NULL. | `$COALESCE(NULL, 'Unknown')` retourneert `'Unknown'`. `$COALESCE('', 'Unknown')` retourneert een lege tekenreeks. |
| `$IFNULL(X, Y)` | Retourneert `X` als dit niet NULL is; retourneert anders `Y`. Retourneert NULL als beide argumenten NULL zijn. Geef exact twee argumenten op. | `$IFNULL(NULL, 'Unknown')` retourneert `'Unknown'`. `$IFNULL('Known', 'Unknown')` retourneert `'Known'`. |
| `$NULLIF(X, Y)` | Retourneert NULL als `X` en `Y` gelijk zijn; retourneert anders `X`. Geef exact twee argumenten op. | `$NULLIF('Unknown', 'Unknown')` retourneert NULL. `$NULLIF('Known', 'Unknown')` retourneert `'Known'`. |

## Datum- en tijdfuncties

Geef een datum-, tijd- of datum/tijd-tekenreeks op zoals `'2026-10-08'`, `'12:34:56'` of `'2026-10-08 12:34:56'`. Plaats datumconstanten tussen aanhalingstekens zodat koppeltekens niet als aftrekking worden geïnterpreteerd.

Datumberekening en -opmaak

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$DATE(date_string)` | Retourneert de datum van `date_string` als tekst in de indeling `YYYY-MM-DD`Configuring database options...<br>Updating tables...<br>================================================================================<br>CRITICAL: Exception occured while running update!<br>--------------------------------------------------------------------------------<br>Error occurred while executing following query:<br>ALTER TABLE `sys_objects_grid` ADD `source_type` varchar(16) NOT NULL default 'grid' AFTER `table`<br>Original error message was:<br>Duplicate column name 'source\_type'<br>================================================================================<br>Database update failed | `$DATE('2026-10-08')` retourneert `'2026-10-08'`. |
| `$DATETIME(datetime_string)` | Retourneert de datum en tijd van `datetime_string` als tekst in de indeling `YYYY-MM-DD HH:MM:SS` . | `$DATETIME('2026-10-08 12:34:56')` retourneert `'2026-10-08 12:34:56'`. |
| `$JULIANDAY(datetime_string)` | Retourneert fractionele dagen sinds het middaguur in Greenwich op 24 november 4714 v.Chr. Trek twee Juliaanse dagwaarden van elkaar af om het aantal verstreken dagen te berekenen. | `$JULIANDAY('2000-01-01 12:00:00')` retourneert `2451545.0`. `$JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08')` retourneert `1.0`. |
| `$STRFTIME(format, datetime_string)` | Retourneert tekst opgemaakt met behulp van `format`. Het formaat komt vóór de datum- of datum/tijdinvoer. | `$STRFTIME('%Y-%m', '2026-10-08')` retourneert `'2026-10'`. |
| `$TIME(time_string)` | Retourneert de tijd van `time_string` als tekst in de indeling `HH:MM:SS`.. | `$TIME('12:34:56')` retourneert `'12:34:56'`. |

### Opmaakvervangingen

Combineer de volgende substituties met letterlijke scheidingstekens in `$STRFTIME`. `'%Y-%m-%d %H:%M:%S'` formatteert bijvoorbeeld zowel de datum als de tijd. Een niet-ondersteunde substitutie retourneert NULL.

Vervangingen voor datum- en tijdnotatie

| Substitutie | Betekenis |
| --- | --- |
| `%d` | Dag van de maand, 01-31. |
| `%H` | Uur, 00-24. |
| `%f` | Seconden met fractioneel deel, SS.SSS. |
| `%j` | Dag van het jaar, 001-366. |
| `%J` | Juliaans dagnummer. |
| `%m` | Maand, 01-12. |
| `%M` | Minuut, 00-59. |
| `%s` | Seconden sinds 1 januari 1970, 00:00:00 UTC. |
| `%S` | Seconden, 00-59. |
| `%w` | Dag van de week, 0-6; zondag is 0. |
| `%W` | Week van het jaar, 00-53; weken beginnen op maandag. |
| `%Y` | Jaar, 0000-9999. |
| `%%` | Een letterlijk procentteken. |

## Dataverrijkingsfuncties

Gebruik een lookup om een gerelateerde waarde, zoals een afdelingsnaam, toe te voegen uit een tabel in het bron- of doeleindpunt.

Argumenten, gedrag en voorbeelden van de dataverrijkingsfunctie

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Haalt de waarde van `expression` op uit `table` van het broneindpunt, in `schema`, voor het record dat overeenkomt met `condition`. De voorwaardeparameters leveren op volgorde waarden voor de bijbehorende placeholders. | `$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)` haalt de overeenkomende afdelingsnaam op uit de bron. |
| `$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Haalt de waarde van `expression` op uit de `table` van het doeleindpunt, in `schema`, voor het record dat overeenkomt met `condition`. De voorwaardeparameters leveren op volgorde waarden voor de bijbehorende placeholders. | `$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)` haalt de overeenkomende afdelingsnaam op uit het doel. |

`condition_params` vertegenwoordigt een door komma's gescheiden lijst van argumenten, niet een enkel array-argument. Beide functies gebruiken de volgende parameters:

Opzoekparameters en hun relaties

| Parameters | Betekenis |
| --- | --- |
| `time_to_live` | Vereiste cachelevensduur, zonder standaardwaarde. Geef de cachelevensduur in seconden op, `'NO_CACHING'` om caching uit te schakelen, of `'NO_EXPIRATION'` om gecachte resultaten zonder vervaldatum te bewaren.<br><br>Korte levensduren vernieuwen regelmatig veranderende gegevens. Langere levensduren verminderen endpointquery's, maar kunnen gecachte waarden retourneren nadat de opzoekgegevens zijn gewijzigd. Gebruik 'geen vervaldatum' alleen voor gegevens die niet veranderen. |
| `schema` | Schema dat de opzoektabel bevat, opgegeven als tekst. |
| `table` | Te bevragen tabel binnen dat schema, opgegeven als tekst. |
| `expression` | SQL-expressie die één kolomwaarde selecteert, zoals `'DEPARTMENT_NAME'` of `'PRICE * 1.2'`. Gebruik het SQL-dialect van het eindpunt dat wordt benaderd, niet de functiesyntaxis van de buitenste expressie. |
| `condition` | SQL-voorwaarde die het opzoekrecord identificeert. Gebruik het dialect en de placeholdersyntaxis van het benaderde eindpunt: bijvoorbeeld `:1` en `:2` voor Oracle, of `?` voor Microsoft SQL Server. |
| `condition_params` | Waarden gebonden aan de tijdelijke aanduidingen voor de voorwaarde, op volgorde. Kolomparameters zoals `$COMPANY_ID` en `$DEPARTMENT_ID` leveren waarden uit de huidige rij. |

Indexeer de opzoekvelden om de querykosten te verlagen. Selecteer een voorwaarde die het gewenste record identificeert en stel het gegevenstype van de toegevoegde kolom zo in dat dit overeenkomt met de geselecteerde waarde.

InformatieHet testen van aanroepen naar `$SOURCE_LOOKUP` en `$TARGET_LOOKUP` wordt niet ondersteund. Zie [Expressies testen](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm#Testing).

### Voorbeeld van bronopzoeking

Voor een Oracle-bron haalt de volgende expressie `DEPARTMENT_NAME` op uit `HR.DEPARTMENTS` en slaat het resultaat gedurende 60 seconden op in de cache:

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

Als de huidige rij `DEPARTMENT_ID` 10 heeft en het overeenkomende opzoekrecord `'Sales'` bevat, is het resultaat `'Sales'`.

Gebruik voor een Microsoft SQL Server-bron de bijbehorende syntaxis voor voorwaardelijke tijdelijke aanduidingen. Dit voorbeeld bindt de waarden voor bedrijf en afdeling in die volgorde:

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

### Voorbeeld van target lookup

Voor een Microsoft SQL Server-doel voert u een query uit op de doeltabel met behulp van het bijbehorende SQL-dialect:

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

Als het doelopzoekrecord voor afdeling 10 `'Sales'` bevat, is het resultaat voor een invoerwaarde van 10 `'Sales'`.

## Bewerkingsfuncties

Argumenten, gedrag en voorbeelden van de bewerkingsfunctie

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)` | Retourneert de vlag die u voor elke bronbewerking opgeeft. De volgorde van de argumenten is verwijderen, bijwerken en vervolgens invoegen. Gebruik een aparte kolom om de vlaggen op te slaan en geef vlagwaarden op die overeenkomen met het bijbehorende gegevenstype. | `$OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted')` retourneert `'Updated'` voor een update. |

In Qlik Replicate wijzigt deze functie ook de verwerking van verwijderingen: deze behoudt het bijbehorende doelrecord en markeert dit met `value_on_delete`. Dit gedrag voor het afhandelen van verwijderingen vereist bevestiging voor Qlik Talend Cloud Data Integration.

## Logische functies

Voorwaardelijke waardeselectie

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$IFF(boolean_expression, true_value, false_value)` | Retourneert `true_value` als `boolean_expression` wordt geëvalueerd als true; retourneert anders `false_value`. Geef eerst de voorwaarde op, gevolgd door de twee resultaatwaarden. | `$IFF(10 > 5, 'High', 'Low')` retourneert `'High'`. `$IFF(3 > 5, 'High', 'Low')` retourneert `'Low'`. |

## Overige functies

Pattern matching en waardetypen

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$LIKE(pattern, string[, escape_character])` | Retourneert 1 bij een overeenkomst of 0 als er geen overeenkomst is; NULL-invoer levert NULL op. `%` komt overeen met nul of meer tekens; `_` komt overeen met één teken. Matching negeert standaard ASCII-hoofdlettergevoeligheid. Het optionele escape-teken is één teken. Het patroon komt eerst, in tegenstelling tot de `LIKE`-operator. | `$LIKE('A%', 'Alice')` retourneert `1`. `$LIKE('10!%', '10%', '!')` retourneert `1`. |
| `$TYPEOF(expression)` | Retourneert de opslagklasse van de waarde: `'null'`, `'integer'`, `'real'`, `'text'` of `'blob'`. Dit is niet het geconfigureerde uitvoerkolomtype. | `$TYPEOF(12.5)` retourneert `'real'`. |

## Hashfuncties

Hashfunctieargumenten, gedrag en voorbeelden

| Functie | Gedrag en argumenten | Voorbeeld en resultaat |
| --- | --- | --- |
| `$SHA256(string)` | Retourneert de hexadecimale SHA-256-hash van de invoertekenreeks. | `$SHA256('abc')` retourneert `ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad`. |

Een hash is geen versleuteling. Voorspelbare invoerwaarden kunnen nog steeds worden geïdentificeerd door hun hashes te vergelijken.