# Uttrycksfunktioner

Använd funktioner för att transformera radvärden, hantera saknade data eller hämta relaterade värden när du bygger uttryck. För mer information, se [Bygga uttryck](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

Funktionerna nedan beskriver uttryck för förflyttningsuppgifter i SaaS-hanterad mellanlagring, lake-mellanlagring och replikeringsuppgifter. Använd funktionssignaturen som visas i din redigerare. Hakparenteser i signaturer anger valfria argument; skriv inte in hakparenteserna.

För funktioner för CDC Storage och Streaming Transform, se [Transformationsfunktioner](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/transformation-functions.htm). För lagrings-, transformerings- och data mart-uttryck som körs på en molndataplattform använder du den plattformens funktionssyntax.

## Strängfunktioner

Prefix- och suffixfunktioner verkar på början eller slutet av en sträng. Teckenersättning tillämpas på enskilda tecken i stället för att matcha ett helt prefix eller suffix.

Strängfunktioners argument, beteende och exempel

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$CONCAT(X, Y)` | Sammanfogar de två strängarna `X` och `Y`, i den ordningen. Returnerar NULL om något av argumenten är NULL. Nästla anrop för att sammanfoga fler än två strängar. | `$CONCAT('My', 'Picture')` returnerar `'MyPicture'`. `$CONCAT('My', NULL)` returnerar NULL. |
| `$INSTR(string, substring)` | Returnerar den ettbaserade positionen för den första förekomsten av `substring` i `string`. Returnerar 0 om delsträngen inte hittas. | `$INSTR('mystring', 'ing')` returnerar `6`. `$INSTR('mystring', 'xyz')` returnerar `0`. |
| `$LENGTH(string)` | Returnerar antalet tecken i `string`, inte dess storlek i byte. | `$LENGTH('mystring')` returnerar `8`. |
| `$LOWER(string)` | Returnerar en kopia av `string` med ASCII-bokstäver konverterade till gemener. | `$LOWER('ABC')` returnerar `'abc'`. |
| `$LTRIM(string[, characters])` | Tar bort tecken från början av `string`. Det valfria argumentet `characters` är en uppsättning tecken som ska tas bort, inte ett prefix. Om det utelämnas tas blanksteg bort. | `$LTRIM('  orders')` returnerar `'orders'`. `$LTRIM('@@orders', '@')` returnerar `'orders'`. |
| `$REMOVE_PREFIX(string, prefix)` | Returnerar en kopia av `string` med den angivna början `prefix` borttagen. | `$REMOVE_PREFIX('mystring', 'my')` returnerar `'string'`. |
| `$REMOVE_SUFFIX(string, suffix)` | Returnerar en kopia av `string` med den angivna ändelsen `suffix` borttagen. | `$REMOVE_SUFFIX('mystring', 'ing')` returnerar `'mystr'`. |
| `$REPLACE(string, pattern, replacement)` | Ersätter varje förekomst av `pattern` i `string` med `replacement`. Alla tre argumenten är obligatoriska. Använd en tom ersättningssträng för att ta bort matchande text. | `$REPLACE('a-b-c', '-', '_')` returnerar `'a_b_c'`. `$REPLACE('a-b', '-', '')` returnerar `'ab'`. |
| `$REPLACE_CHARS(string, chars, replacement)` | Ersätter varje tecken som anges i `chars` med tecknet på samma position i `replacement`. Olistade tecken förblir oförändrade. Om en ersättningsposition saknas används det första ersättningstecknet. | `$REPLACE_CHARS('mystring', 's', 'z')` returnerar `'myztring'`. `$REPLACE_CHARS('abcde', 'abcd', '123')` returnerar `'1231e'`. |
| `$REPLACE_PREFIX(string, prefix, replacement)` | Ersätter inledande `prefix` i `string` med `replacement`. | `$REPLACE_PREFIX('mystring', 'my', 'new')` returnerar `'newstring'`. |
| `$REPLACE_SUFFIX(string, suffix, replacement)` | Ersätter det avslutande `suffix` i `string` med `replacement`, snarare än att ersätta varje förekomst. | `$REPLACE_SUFFIX('mystring', 'ing', 'new')` returnerar `'mystrnew'`. |
| `$RTRIM(string[, characters])` | Tar bort tecken från slutet av `string`. Det valfria argumentet `characters` är en uppsättning tecken som ska tas bort, inte ett suffix. Om det utelämnas tas blanksteg bort. | `$RTRIM('orders  ')` returnerar `'orders'`. `$RTRIM('orders@@', '@')` returnerar `'orders'`. |
| `$SUBSTR(string, start[, length])` | Extraherar text från `string`, med start vid den ettbaserade positionen `start`. `length` anger antalet tecken. Om det utelämnas returneras de återstående tecknen. | `$SUBSTR('abcdef', 2, 3)` returnerar `'bcd'`. |
| `$TRIM(string[, characters])` | Tar bort tecken från båda ändarna av `string`. Det valfria argumentet `characters` är en uppsättning tecken som ska tas bort, inte en delsträng. Om det utelämnas tas blanksteg bort. | `$TRIM('  orders  ')` returnerar `'orders'`. `$TRIM('@#orders#@', '@#')` returnerar `'orders'`. |
| `$UNICODE(string)` | Returnerar den numeriska Unicode-kodpunkten för det första tecknet i `string`. Argumentet måste vara en sträng. | `$UNICODE('ABC')` returnerar `65`. |
| `$UPPER(string)` | Returnerar en kopia av `string` med ASCII-bokstäver konverterade till versaler. | `$UPPER('abc')` returnerar `'ABC'`. |

## Numeriska funktioner

Använd dessa funktioner för att beräkna numeriska värden för den aktuella raden. `$MAX` och `$MIN` jämför argument inom raden, inte värden mellan rader.

Numeriska funktionsargument, beteende och exempel

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$ABS(X)` | Returnerar det absoluta värdet för det numeriska argumentet `X`. | `$ABS(-20)` returnerar `20`. |
| `$MAX(arg1, arg2, ...)` | Returnerar det största värdet bland de angivna numeriska argumenten. Ange minst två argument. | `$MAX(10, 4, 20, 9)` returnerar `20`. |
| `$MIN(arg1, arg2, ...)` | Returnerar det minsta värdet bland de angivna numeriska argumenten. Ange minst två argument. | `$MIN(10, 4, 20, 9)` returnerar `4`. |
| `$RANDOM()` | Returnerar ett pseudoslumpmässigt heltal med tecken. Tar inga argument. | `$RANDOM()` returnerar ett heltal som kan vara negativt, noll eller positivt. Dess värde varierar mellan anrop. |
| `$ROUND(value[, digits])` | Avrundar `value` till `digits` decimaler och returnerar ett flyttalsvärde. Om `digits` utelämnas avrundas till noll decimaler. | `$ROUND(3.141592, 3)` returnerar `3.142`. |

## LOB-funktioner

Dessa funktioner fungerar med binära stora objekt (BLOB:ar). Argumentet size `N` anger byte, inte tecken.

Binärvärdesfunktioner

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$HEX(blob)` | Returnerar hexadecimal text med versaler som representerar bytena i `blob`. Numerisk indata konverteras först till text; resultatet är inte talets maskinrepresentation. | `$HEX(X'4142')` returnerar `'4142'`. |
| `$RANDOM_BLOB(N)` | Returnerar `N` pseudoslumpmässiga byte. Om `N` är mindre än 1 returneras en byte. Använd inte den här funktionen som en garanti för kryptografisk slumpmässighet. | `$RANDOM_BLOB(4)` returnerar en BLOB på fyra byte. Dess värde varierar mellan anrop. |
| `$ZERO_BLOB(N)` | Returnerar en BLOB som innehåller `N` nollbyte. | `$HEX($ZERO_BLOB(3))` returnerar `'000000'`. |

## Null-kontrollfunktioner

Argument, beteende och exempel för null-kontrollfunktionen

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$COALESCE(X, Y, ...)` | Returnerar det första icke-NULL-argumentet, i argumentordning. Ange minst två argument. Om alla argument är NULL blir resultatet NULL. En tom sträng är inte NULL. | `$COALESCE(NULL, 'Unknown')` returnerar `'Unknown'`. `$COALESCE('', 'Unknown')` returnerar en tom sträng. |
| `$IFNULL(X, Y)` | Returnerar `X` om det inte är NULL; annars returneras `Y`. Returnerar NULL om båda argumenten är NULL. Ange exakt två argument. | `$IFNULL(NULL, 'Unknown')` returnerar `'Unknown'`. `$IFNULL('Known', 'Unknown')` returnerar `'Known'`. |
| `$NULLIF(X, Y)` | Returnerar NULL om `X` och `Y` är lika; annars returneras `X`. Ange exakt två argument. | `$NULLIF('Unknown', 'Unknown')` returnerar NULL. `$NULLIF('Known', 'Unknown')` returnerar `'Known'`. |

## Datum- och tidsfunktioner

Ange en sträng för datum, tid eller datum/tid, till exempel `'2026-10-08'`, `'12:34:56'` eller `'2026-10-08 12:34:56'`. Sätt datumkonstanter inom citattecken så att bindestreck inte tolkas som subtraktion.

Datumberäkning och formatering

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$DATE(date_string)` | Returnerar datumet från `date_string` som text i formatet `YYYY-MM-DD`. | `$DATE('2026-10-08')` returnerar `'2026-10-08'`. |
| `$DATETIME(datetime_string)` | Returnerar datum och tid från `datetime_string` som text i formatet `YYYY-MM-DD HH:MM:SS`. | `$DATETIME('2026-10-08 12:34:56')` returnerar `'2026-10-08 12:34:56'`. |
| `$JULIANDAY(datetime_string)` | Returnerar bråkdelsdagar sedan middag i Greenwich den 24 november 4714 f.Kr. Subtrahera två julianska dagsvärden för att beräkna antalet förflutna dagar. | `$JULIANDAY('2000-01-01 12:00:00')` returnerar `2451545.0`. `$JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08')` returnerar `1.0`. |
| `$STRFTIME(format, datetime_string)` | Returnerar text formaterad med `format`. Formatet kommer före inmatningen av datum eller datum/tid. | `$STRFTIME('%Y-%m', '2026-10-08')` returnerar `'2026-10'`. |
| `$TIME(time_string)` | Returnerar tiden från `time_string` som text i formatet `HH:MM:SS`. | `$TIME('12:34:56')` returnerar `'12:34:56'`. |

### Formateringsersättningar

Kombinera följande ersättningar med literala avgränsare i `$STRFTIME`. Till exempel formaterar `'%Y-%m-%d %H:%M:%S'` både datum och tid. En substitution som inte stöds returnerar NULL.

Ersättningar för datum- och tidsformat

| Ersättning | Betydelse |
| --- | --- |
| `%d` | Dag i månaden, 01-31. |
| `%H` | Timme, 00-24. |
| `%f` | Sekunder med bråkdel, SS.SSS. |
| `%j` | Dag på året, 001-366. |
| `%J` | Julianskt dagnummer. |
| `%m` | Månad, 01-12. |
| `%M` | Minut, 00-59. |
| `%s` | Sekunder sedan den 1 januari 1970, 00:00:00 UTC. |
| `%S` | Sekunder, 00-59. |
| `%w` | Veckodag, 0-6; söndag är 0. |
| `%W` | Vecka på året, 00-53; veckan börjar på måndag. |
| `%Y` | År, 0000-9999. |
| `%%` | Ett bokstavligt procenttecken. |

## Databerikningsfunktioner

Använd en uppslagning för att lägga till ett relaterat värde, till exempel ett avdelningsnamn, från en tabell i käll- eller målslutpunkten.

Databerikningsfunktionens argument, beteende och exempel

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Hämtar värdet för `expression` från källslutpunktens `table`, i `schema`, för posten som matchar `condition`. Villkorsparametrarna tillhandahåller värden för dess platshållare i ordningsföljd. | `$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)` hämtar det matchande avdelningsnamnet från källan. |
| `$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Hämtar värdet för `expression` från målslutpunktens `table`, i `schema`, för den post som matchar `condition`. Villkorsparametrarna tillhandahåller värden för dess platshållare i ordningsföljd. | `$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)` hämtar det matchande avdelningsnamnet från målet. |

`condition_params` representerar en kommaavgränsad lista med argument, inte ett enskilt array-argument. Båda funktionerna använder följande parametrar:

Uppslagsparametrar och deras relationer

| Parameter | Betydelse |
| --- | --- |
| `time_to_live` | Obligatorisk cachelivslängd, utan standardvärde. Ange cachens livslängd i sekunder, `'NO_CACHING'` för att inaktivera cachelagring, eller `'NO_EXPIRATION'` för att behålla cachelagrade resultat utan att de förfaller.<br><br>Korta livslängder uppdaterar data som ändras ofta. Längre livslängder minskar antalet slutpunktsfrågor, men kan returnera cachelagrade värden efter att uppslagsdata har ändrats. Använd inget utgångsdatum endast för data som inte ändras. |
| `schema` | Schema som innehåller uppslagstabellen, angivet som text. |
| `table` | Tabell att köra frågor mot inom det schemat, anges som text. |
| `expression` | SQL-uttryck som väljer ett kolumnvärde, till exempel `'DEPARTMENT_NAME'` eller `'PRICE * 1.2'`. Använd SQL-dialekten för slutpunkten som nås, inte det yttre uttryckets funktionssyntax. |
| `condition` | SQL-villkor som identifierar uppslagsposten. Använd den anropade slutpunktens dialekt och platshållarsyntax: till exempel `:1` och `:2` för Oracle, eller `?` för Microsoft SQL Server. |
| `condition_params` | Värden bundna till villkorsplatshållarna, i ordning. Kolumnparametrar som `$COMPANY_ID` och `$DEPARTMENT_ID` tillhandahåller värden från den aktuella raden. |

Indexera uppslagsfälten för att minska frågekostnaden. Välj ett villkor som identifierar den avsedda posten, och ange den tillagda kolumnens datatyp så att den matchar det valda värdet.

Anteckning om informationTestning av anrop till `$SOURCE_LOOKUP` och `$TARGET_LOOKUP` stöds inte. Se [Testa uttryck](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm#Testing).

### Exempel på källkodssökning

För en Oracle-källa hämtar följande uttryck `DEPARTMENT_NAME` från `HR.DEPARTMENTS` och cachelagrar resultatet i 60 sekunder:

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

Om den aktuella raden har `DEPARTMENT_ID` 10 och den matchande uppslagsposten innehåller `'Sales'`, blir resultatet `'Sales'`.

För en Microsoft SQL Server-källa använder du dess syntax för villkorsplatshållare. Det här exemplet binder företags- och avdelningsvärden i den ordningen:

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

### Exempel på måluppslagning

För ett Microsoft SQL Server-mål, kör en fråga mot måltabellen med dess SQL-dialekt:

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

Om måluppslagsposten för avdelning 10 innehåller `'Sales'` blir resultatet för ett indatavärde på 10 `'Sales'`.

## Operationsfunktioner

Operationsfunktionens argument, beteende och exempel

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)` | Returnerar den flagga du anger för varje källoperation. Argumentordningen är ta bort, uppdatera, sedan infoga. Använd en dedikerad kolumn för att lagra flaggorna, och ange flaggvärden som matchar dess datatyp. | `$OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted')` returnerar `'Updated'` för en uppdatering. |

I Qlik Replicate ändrar den här funktionen även borttagningshanteringen: den behåller motsvarande målpost och flaggar den med `value_on_delete`. Detta beteende för borttagningshantering kräver bekräftelse för Qlik Talend Cloud Data Integration.

## Logiska funktioner

Villkorligt värdeval

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$IFF(boolean_expression, true_value, false_value)` | Returnerar `true_value` om `boolean_expression` utvärderas till sant; annars returneras `false_value`. Ange villkoret först, följt av de två resultatvärdena. | `$IFF(10 > 5, 'High', 'Low')` returnerar `'High'`. `$IFF(3 > 5, 'High', 'Low')` returnerar `'Low'`. |

## Övriga funktioner

Mönstermatchning och värdetyper

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$LIKE(pattern, string[, escape_character])` | Returnerar 1 vid matchning eller 0 vid ingen matchning; NULL-indata ger NULL. `%` matchar noll eller fler tecken; `_` matchar ett. Matchning ignorerar skiftläge för ASCII-bokstäver som standard. Det valfria escape-tecknet är ett tecken. Mönstret kommer först, till skillnad från operatorn `LIKE`. | `$LIKE('A%', 'Alice')` returnerar `1`. `$LIKE('10!%', '10%', '!')` returnerar `1`. |
| `$TYPEOF(expression)` | Returnerar värdets lagringsklass: `'null'`, `'integer'`, `'real'`, `'text'` eller `'blob'`. Detta är inte den konfigurerade utdatakolumntypen. | `$TYPEOF(12.5)` returnerar `'real'`. |

## Hashfunktioner

Hashfunktionsargument, beteende och exempel

| Funktion | Beteende och argument | Exempel och resultat |
| --- | --- | --- |
| `$SHA256(string)` | Returnerar det hexadecimala SHA-256-hashvärdet för indatasträngen. | `$SHA256('abc')` returnerar `ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad`. |

En hash är inte kryptering. Förutsägbara indatavärden kan fortfarande identifieras genom att jämföra deras hashvärden.