# Funkcje wyrażeń

Użyj funkcji, aby przekształcać wartości wierszy, obsługiwać brakujące dane lub pobierać powiązane wartości podczas tworzenia wyrażeń. Aby uzyskać szczegółowe informacje, zobacz temat [Tworzenie wyrażeń](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

Poniższe funkcje opisują wyrażenia zadań przenoszenia w zadaniach umieszczania zarządzanych przez SaaS, umieszczania w usłudze lake i replikacji. Użyj sygnatury funkcji wyświetlanej w swoim edytorze. Nawiasy kwadratowe w sygnaturach oznaczają argumenty opcjonalne; nie należy wpisywać nawiasów.

W przypadku funkcji CDC Storage i Streaming Transform zobacz [Funkcje transformacji](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/transformation-functions.htm). W przypadku wyrażeń magazynu, transformacji i składnic danych wykonywanych na platformie danych w chmurze należy używać składni funkcji tej platformy.

## Funkcje ciągów znaków

Funkcje prefiksu i sufiksu działają na początku lub końcu ciągu znaków. Zastępowanie znaków działa na poszczególne znaki, zamiast dopasowywać cały prefiks lub sufiks.

Argumenty, zachowanie i przykłady funkcji łańcuchowych

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$CONCAT(X, Y)` | Łączy dwa ciągi znaków `X` i `Y` w tej kolejności. Zwraca wartość NULL, jeśli którykolwiek argument ma wartość NULL. Zagnieżdżaj wywołania, aby połączyć więcej niż dwa ciągi znaków. | `$CONCAT('My', 'Picture')` zwraca `'MyPicture'`. `$CONCAT('My', NULL)` zwraca NULL. |
| `$INSTR(string, substring)` | Zwraca liczoną od 1 pozycję pierwszego wystąpienia `substring` w `string`. Zwraca 0, jeśli podciąg nie zostanie znaleziony. | `$INSTR('mystring', 'ing')` zwraca `6`. `$INSTR('mystring', 'xyz')` zwraca `0`. |
| `$LENGTH(string)` | Zwraca liczbę znaków w `string`, a nie jego rozmiar w bajtach. | `$LENGTH('mystring')` zwraca `8`. |
| `$LOWER(string)` | Zwraca kopię `string` z literami ASCII przekonwertowanymi na małe litery. | `$LOWER('ABC')` zwraca `'abc'`. |
| `$LTRIM(string[, characters])` | Usuwa znaki z początku `string`. Opcjonalny argument `characters` to zbiór znaków do usunięcia, a nie prefiks. W przypadku pominięcia usuwa spacje. | `$LTRIM('  orders')` zwraca `'orders'`. `$LTRIM('@@orders', '@')` zwraca `'orders'`. |
| `$REMOVE_PREFIX(string, prefix)` | Zwraca kopię `string` z usuniętym określonym początkowym `prefix`. | `$REMOVE_PREFIX('mystring', 'my')` zwraca `'string'`. |
| `$REMOVE_SUFFIX(string, suffix)` | Zwraca kopię `string` z usuniętym określonym zakończeniem `suffix`. | `$REMOVE_SUFFIX('mystring', 'ing')` zwraca `'mystr'`. |
| `$REPLACE(string, pattern, replacement)` | Zastępuje każde wystąpienie `pattern` w `string` przez `replacement`. Wszystkie trzy argumenty są wymagane. Użyj pustego ciągu zamiennego, aby usunąć pasujący tekst. | `$REPLACE('a-b-c', '-', '_')` zwraca `'a_b_c'`. `$REPLACE('a-b', '-', '')` zwraca `'ab'`. |
| `$REPLACE_CHARS(string, chars, replacement)` | Zastępuje każdy znak wymieniony w `chars` znakiem na tej samej pozycji w `replacement`. Niewymienione znaki pozostają bez zmian. Jeśli brakuje pozycji zastępczej, używany jest pierwszy znak zastępczy. | `$REPLACE_CHARS('mystring', 's', 'z')` zwraca `'myztring'`. `$REPLACE_CHARS('abcde', 'abcd', '123')` zwraca `'1231e'`. |
| `$REPLACE_PREFIX(string, prefix, replacement)` | Zamienia początkowe `prefix` w `string` na `replacement`. | `$REPLACE_PREFIX('mystring', 'my', 'new')` zwraca `'newstring'`. |
| `$REPLACE_SUFFIX(string, suffix, replacement)` | Zastępuje końcowe `suffix` w `string` za pomocą `replacement`, zamiast zastępować każde wystąpienie. | `$REPLACE_SUFFIX('mystring', 'ing', 'new')` zwraca `'mystrnew'`. |
| `$RTRIM(string[, characters])` | Usuwa znaki z końca `string`. Opcjonalny argument `characters` to zestaw znaków do usunięcia, a nie sufiks. W przypadku pominięcia usuwa spacje. | `$RTRIM('orders  ')` zwraca `'orders'`. `$RTRIM('orders@@', '@')` zwraca `'orders'`. |
| `$SUBSTR(string, start[, length])` | Wyodrębnia tekst z `string`, zaczynając od pozycji `start` liczonej od 1. `length` określa liczbę znaków. W przypadku pominięcia zwraca pozostałe znaki. | `$SUBSTR('abcdef', 2, 3)` zwraca `'bcd'`. |
| `$TRIM(string[, characters])` | Usuwa znaki z obu końców `string`. Opcjonalny argument `characters` to zbiór znaków do usunięcia, a nie podciąg. W przypadku pominięcia usuwa spacje. | `$TRIM('  orders  ')` zwraca `'orders'`. `$TRIM('@#orders#@', '@#')` zwraca `'orders'`. |
| `$UNICODE(string)` | Zwraca numeryczny punkt kodowy Unicode pierwszego znaku w `string`. Argument musi być ciągiem znaków. | `$UNICODE('ABC')` zwraca `65`. |
| `$UPPER(string)` | Zwraca kopię `string` z literami ASCII zamienionymi na wielkie litery. | `$UPPER('abc')` zwraca `'ABC'`. |

## Funkcje liczbowe

Użyj tych funkcji, aby obliczyć wartości liczbowe dla bieżącego wiersza. `$MAX` i `$MIN` porównują argumenty w obrębie wiersza, a nie wartości między wierszami.

Argumenty, zachowanie i przykłady funkcji numerycznych

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$ABS(X)` | Zwraca wartość bezwzględną argumentu liczbowego `X`. | `$ABS(-20)` zwraca `20`. |
| `$MAX(arg1, arg2, ...)` | Zwraca największą wartość spośród podanych argumentów liczbowych. Podaj co najmniej dwa argumenty. | `$MAX(10, 4, 20, 9)` zwraca `20`. |
| `$MIN(arg1, arg2, ...)` | Zwraca najmniejszą wartość spośród podanych argumentów liczbowych. Podaj co najmniej dwa argumenty. | `$MIN(10, 4, 20, 9)` zwraca `4`. |
| `$RANDOM()` | Zwraca pseudolosową liczbę całkowitą ze znakiem. Nie przyjmuje żadnych argumentów. | `$RANDOM()` zwraca liczbę całkowitą, która może być ujemna, równa zero lub dodatnia. Jej wartość zmienia się między wywołaniami. |
| `$ROUND(value[, digits])` | Zaokrągla `value` do `digits` miejsc po przecinku i zwraca wartość zmiennoprzecinkową. Jeśli pominięto `digits`, zaokrągla do zera miejsc po przecinku. | `$ROUND(3.141592, 3)` zwraca `3.142`. |

## Funkcje LOB

Te funkcje współpracują z dużymi obiektami binarnymi (BLOB). Argument size `N` określa bajty, a nie znaki.

Funkcje wartości binarnych

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$HEX(blob)` | Zwraca tekst szesnastkowy zapisany wielkimi literami, reprezentujący bajty `blob`. Liczbowe dane wejściowe są najpierw konwertowane na tekst; wynik nie jest reprezentacją maszynową liczby. | `$HEX(X'4142')` zwraca `'4142'`. |
| `$RANDOM_BLOB(N)` | Zwraca `N` pseudolosowych bajtów. Jeśli `N` jest mniejsze niż 1, zwraca jeden bajt. Nie należy używać tej funkcji jako gwarancji kryptograficznej losowości. | `$RANDOM_BLOB(4)` zwraca czterobajtowy obiekt BLOB. Jej wartość zmienia się między wywołaniami. |
| `$ZERO_BLOB(N)` | Zwraca obiekt BLOB zawierający `N` bajtów zerowych. | `$HEX($ZERO_BLOB(3))` zwraca `'000000'`. |

## Funkcje sprawdzające wartości NULL

Argumenty funkcji sprawdzającej wartości null, zachowanie i przykłady

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$COALESCE(X, Y, ...)` | Zwraca pierwszy argument różny od NULL, w kolejności argumentów. Podaj co najmniej dwa argumenty. Jeśli wszystkie argumenty mają wartość NULL, wynikiem jest NULL. Pusty ciąg znaków nie jest wartością NULL. | `$COALESCE(NULL, 'Unknown')` zwraca `'Unknown'`. `$COALESCE('', 'Unknown')` zwraca pusty ciąg znaków. |
| `$IFNULL(X, Y)` | Zwraca `X`, jeśli nie ma wartości NULL; w przeciwnym razie zwraca `Y`. Zwraca wartość NULL, jeśli oba argumenty mają wartość NULL. Podaj dokładnie dwa argumenty. | `$IFNULL(NULL, 'Unknown')` zwraca `'Unknown'`. `$IFNULL('Known', 'Unknown')` zwraca `'Known'`. |
| `$NULLIF(X, Y)` | Zwraca wartość NULL, jeśli `X` i `Y` są równe; w przeciwnym razie zwraca `X`. Podaj dokładnie dwa argumenty. | `$NULLIF('Unknown', 'Unknown')` zwraca NULL. `$NULLIF('Known', 'Unknown')` zwraca `'Known'`. |

## Funkcje daty i czasu

Podaj ciąg znaków daty, godziny lub daty i godziny, taki jak `'2026-10-08'`, `'12:34:56'` lub `'2026-10-08 12:34:56'`. Umieszczaj stałe daty w cudzysłowie, aby łączniki nie zostały zinterpretowane jako odejmowanie.

Obliczanie i formatowanie dat

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$DATE(date_string)` | Zwraca datę z `date_string` jako tekst w formacie `YYYY-MM-DD`. | `$DATE('2026-10-08')` zwraca `'2026-10-08'`. |
| `$DATETIME(datetime_string)` | Zwraca datę i godzinę z `datetime_string` jako tekst w formacie `YYYY-MM-DD HH:MM:SS` transportu. | `$DATETIME('2026-10-08 12:34:56')` zwraca `'2026-10-08 12:34:56'`. |
| `$JULIANDAY(datetime_string)` | Zwraca ułamkową liczbę dni od południa w Greenwich w dniu 24 listopada 4714 r. p.n.e. Odejmij dwie wartości dnia juliańskiego, aby obliczyć liczbę dni, które upłynęły. | `$JULIANDAY('2000-01-01 12:00:00')` zwraca `2451545.0`. `$JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08')` zwraca `1.0`. |
| `$STRFTIME(format, datetime_string)` | Zwraca tekst sformatowany za pomocą `format`. Format znajduje się przed danymi wejściowymi daty lub daty i godziny. | `$STRFTIME('%Y-%m', '2026-10-08')` zwraca `'2026-10'`. |
| `$TIME(time_string)` | Zwraca czas z `time_string` jako tekst w formacie `HH:MM:SS` formatu. | `$TIME('12:34:56')` zwraca `'12:34:56'`. |

### Podstawienia formatu

Połącz następujące podstawienia z separatorami literałowymi w `$STRFTIME`. Na przykład `'%Y-%m-%d %H:%M:%S'` formatuje zarówno datę, jak i godzinę. Nieobsługiwane podstawienie zwraca wartość NULL.

Podstawienia formatu daty i godziny

| Zastępowanie | Znaczenie |
| --- | --- |
| `%d` | Dzień miesiąca, 01-31. |
| `%H` | Godzina, 00-24. |
| `%f` | Sekundy z częścią ułamkową, SS.SSS. |
| `%j` | Dzień roku, 001-366. |
| `%J` | Numer dnia juliańskiego. |
| `%m` | Miesiąc, 01-12. |
| `%M` | Minuta, 00-59. |
| `%s` | Liczba sekund od 1 stycznia 1970 roku, 00:00:00 UTC. |
| `%S` | Sekundy, 00-59. |
| `%w` | Dzień tygodnia, 0-6; niedziela to 0. |
| `%W` | Tydzień roku, 00-53; tygodnie zaczynają się w poniedziałek. |
| `%Y` | Rok, 0000-9999. |
| `%%` | Dosłowny znak procentu. |

## Funkcje wzbogacania danych

Użyj wyszukiwania, aby dodać powiązaną wartość, taką jak nazwa działu, z tabeli w źródłowym lub docelowym punkcie końcowym.

Argumenty, działanie i przykłady funkcji wzbogacania danych

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Pobiera wartość `expression` z `table` źródłowego punktu końcowego, w `schema`, dla rekordu pasującego do `condition`. Parametry warunku dostarczają wartości dla jego symboli zastępczych w odpowiedniej kolejności. | `$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)` pobiera pasującą nazwę działu ze źródła. |
| `$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Pobiera wartość `expression` z `table` docelowego punktu końcowego, w `schema`, dla rekordu pasującego do `condition`. Parametry warunku dostarczają wartości dla jego symboli zastępczych w odpowiedniej kolejności. | `$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)` pobiera pasującą nazwę działu z obiektu docelowego. |

`condition_params` reprezentuje rozdzieloną przecinkami listę argumentów, a nie pojedynczy argument tablicowy. Obie funkcje używają następujących parametrów:

Parametry wyszukiwania i ich relacje

| Parametr | Znaczenie |
| --- | --- |
| `time_to_live` | Wymagany czas życia pamięci podręcznej, bez wartości domyślnej. Podaj czas życia pamięci podręcznej w sekundach, `'NO_CACHING'`, aby wyłączyć buforowanie, lub `'NO_EXPIRATION'`, aby zachować buforowane wyniki bez wygasania.<br><br>Krótkie czasy życia odświeżają często zmieniające się dane. Dłuższy czas życia zmniejsza liczbę zapytań do punktu końcowego, ale może powodować zwracanie wartości z pamięci podręcznej po zmianie danych wyszukiwania. Używaj braku wygasania tylko w przypadku danych, które się nie zmieniają. |
| `schema` | Schemat zawierający tabelę wyszukiwania, podany jako tekst. |
| `table` | Tabela do odpytania w ramach tego schematu, podana jako tekst. |
| `expression` | Wyrażenie SQL wybierające wartość jednej kolumny, takie jak `'DEPARTMENT_NAME'` lub `'PRICE * 1.2'`. Użyj dialektu SQL punktu końcowego, do którego uzyskiwany jest dostęp, a nie składni funkcji wyrażenia zewnętrznego. |
| `condition` | Warunek SQL identyfikujący rekord wyszukiwania. Użyj dialektu i składni symboli zastępczych punktu końcowego, do którego uzyskano dostęp: na przykład `:1` i `:2` dla bazy Oracle lub `?` dla Microsoft SQL Server. |
| `condition_params` | Wartości powiązane z symbolami zastępczymi warunku, w kolejności. Parametry kolumn, takie jak `$COMPANY_ID` i `$DEPARTMENT_ID`, dostarczają wartości z bieżącego wiersza. |

Zindeksuj pola wyszukiwania, aby zmniejszyć koszt zapytania. Wybierz warunek identyfikujący docelowy rekord i ustaw typ danych dodanej kolumny tak, aby odpowiadał wybranej wartości.

InformacjaTestowanie wywołań do `$SOURCE_LOOKUP` i `$TARGET_LOOKUP` nie jest obsługiwane. Zobacz [Testowanie wyrażeń](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm#Testing).

### Przykład wyszukiwania źródła

W przypadku źródła Oracle poniższe wyrażenie pobiera `DEPARTMENT_NAME` z `HR.DEPARTMENTS` i zapisuje wynik w pamięci podręcznej na 60 sekund:

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

Jeśli bieżący wiersz zawiera `DEPARTMENT_ID` 10, a pasujący rekord wyszukiwania zawiera `'Sales'`, wynikiem jest `'Sales'`.

W przypadku źródła Microsoft SQL Server użyj jego składni symbolu zastępczego warunku. Ten przykład wiąże wartości firmy i działu w tej kolejności:

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

### Przykład wyszukiwania docelowego

W przypadku obiektu docelowego Microsoft SQL Server odpytaj tabelę docelową, używając jej dialektu SQL:

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

Jeśli docelowy rekord wyszukiwania dla działu 10 zawiera `'Sales'`, to wynikiem dla wartości wejściowej 10 jest `'Sales'`.

## Funkcje operacyjne

Argumenty funkcji operacji, zachowanie i przykłady

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)` | Zwraca flagę określoną dla każdej operacji źródłowej. Kolejność argumentów to delete, update, a następnie insert. Użyj dedykowanej kolumny do przechowywania flag i podaj wartości flag zgodne z jej typem danych. | `$OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted')` zwraca `'Updated'` w przypadku aktualizacji. |

W Qlik Replicate funkcja ta zmienia również sposób obsługi usuwania: zachowuje odpowiedni rekord docelowy i oznacza go za pomocą `value_on_delete`. To zachowanie dotyczące obsługi usuwania wymaga potwierdzenia w przypadku Qlik Talend Cloud Data Integration.

## Funkcje logiczne

Warunkowy wybór wartości

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$IFF(boolean_expression, true_value, false_value)` | Zwraca `true_value`, jeśli `boolean_expression` ma wartość true; w przeciwnym razie zwraca `false_value`. Najpierw podaj warunek, a następnie dwie wartości wynikowe. | `$IFF(10 > 5, 'High', 'Low')` zwraca `'High'`. `$IFF(3 > 5, 'High', 'Low')` zwraca `'Low'`. |

## Inne funkcje

Dopasowywanie wzorców i typy wartościowe

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$LIKE(pattern, string[, escape_character])` | Zwraca 1 w przypadku dopasowania lub 0 w przypadku braku dopasowania; wartość wejściowa NULL daje wynik NULL. `%` dopasowuje zero lub więcej znaków; `_` dopasowuje jeden znak. Dopasowywanie domyślnie ignoruje wielkość liter ASCII. Opcjonalny znak ucieczki to jeden znak. Wzorzec występuje jako pierwszy, w przeciwieństwie do operatora `LIKE`. | `$LIKE('A%', 'Alice')` zwraca `1`. `$LIKE('10!%', '10%', '!')` zwraca `1`. |
| `$TYPEOF(expression)` | Zwraca klasę przechowywania wartości: `'null'`, `'integer'`, `'real'`, `'text'` lub `'blob'`. To nie jest skonfigurowany typ kolumny wyjściowej. | `$TYPEOF(12.5)` zwraca `'real'`. |

## Funkcje skrótu

Argumenty, działanie i przykłady funkcji skrótu

| Funkcja | Zachowanie i argumenty | Przykład i wynik |
| --- | --- | --- |
| `$SHA256(string)` | Zwraca szesnastkowy skrót SHA-256 wejściowego ciągu znaków. | `$SHA256('abc')` zwraca `ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad`. |

Hash nie jest szyfrowaniem. Przewidywalne wartości wejściowe nadal można zidentyfikować, porównując ich skróty.