# Funções de expressão

Use funções para transformar valores de linha, tratar dados ausentes ou recuperar valores relacionados ao criar expressões. Para obter detalhes, consulte [Construindo expressões](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

As funções abaixo descrevem expressões de tarefas de movimentação em tarefas de aterrisagem gerenciadas por SaaS, aterrisagem em lake e replicação. Use a assinatura da função exibida no seu editor. Colchetes em assinaturas indicam argumentos opcionais; não insira os colchetes.

Para funções de CDC Storage e Streaming Transform, consulte [Funções de transformação](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/transformation-functions.htm). Para expressões de armazenamento, transformação e data mart executadas em uma plataforma de dados na nuvem, use a sintaxe de função dessa plataforma.

## Funções de string

Funções de prefixo e sufixo atuam no início ou no fim de uma string. A substituição de caracteres atua em caracteres individuais em vez de corresponder a um prefixo ou sufixo inteiro.

Argumentos, comportamento e exemplos de funções de string

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$CONCAT(X, Y)` | Une as duas strings `X` e `Y`, nessa ordem. Retorna NULL se qualquer um dos argumentos for NULL. Aninhe chamadas para unir mais de duas strings. | `$CONCAT('My', 'Picture')` retorna `'MyPicture'`. `$CONCAT('My', NULL)` retorna NULL. |
| `$INSTR(string, substring)` | Retorna a posição baseada em 1 da primeira ocorrência de `substring` em `string`. Retorna 0 se a substring não for encontrada. | `$INSTR('mystring', 'ing')` retorna `6`. `$INSTR('mystring', 'xyz')` retorna `0`. |
| `$LENGTH(string)` | Retorna o número de caracteres em `string`, não o seu tamanho em bytes. | `$LENGTH('mystring')` retorna `8`. |
| `$LOWER(string)` | Retorna uma cópia de `string` com letras ASCII convertidas para minúsculas. | `$LOWER('ABC')` retorna `'abc'`. |
| `$LTRIM(string[, characters])` | Remove caracteres do início de `string`. O argumento opcional `characters` é um conjunto de caracteres a serem removidos, não um prefixo. Se omitido, remove os espaços. | `$LTRIM('  orders')` retorna `'orders'`. `$LTRIM('@@orders', '@')` retorna `'orders'`. |
| `$REMOVE_PREFIX(string, prefix)` | Retorna uma cópia de `string` com o `prefix` inicial especificado removido. | `$REMOVE_PREFIX('mystring', 'my')` retorna `'string'`. |
| `$REMOVE_SUFFIX(string, suffix)` | Retorna uma cópia de `string` com o final especificado `suffix` removido. | `$REMOVE_SUFFIX('mystring', 'ing')` retorna `'mystr'`. |
| `$REPLACE(string, pattern, replacement)` | Substitui cada ocorrência de `pattern` em `string` por `replacement`. Todos os três argumentos são obrigatórios. Use uma string de substituição vazia para remover o texto correspondente. | `$REPLACE('a-b-c', '-', '_')` retorna `'a_b_c'`. `$REPLACE('a-b', '-', '')` retorna `'ab'`. |
| `$REPLACE_CHARS(string, chars, replacement)` | Substitui cada caractere listado em `chars` pelo caractere na mesma posição em `replacement`. Caracteres não listados permanecem inalterados. Se uma posição de substituição estiver ausente, o primeiro caractere de substituição será usado. | `$REPLACE_CHARS('mystring', 's', 'z')` retorna `'myztring'`. `$REPLACE_CHARS('abcde', 'abcd', '123')` retorna `'1231e'`. |
| `$REPLACE_PREFIX(string, prefix, replacement)` | Substitui o `prefix` inicial em `string` por `replacement`. | `$REPLACE_PREFIX('mystring', 'my', 'new')` retorna `'newstring'`. |
| `$REPLACE_SUFFIX(string, suffix, replacement)` | Substitui o `suffix` final em `string` por `replacement`, em vez de substituir todas as ocorrências. | `$REPLACE_SUFFIX('mystring', 'ing', 'new')` retorna `'mystrnew'`. |
| `$RTRIM(string[, characters])` | Remove caracteres do final de `string`. O argumento opcional `characters` é um conjunto de caracteres a serem removidos, não um sufixo. Se omitido, remove os espaços. | `$RTRIM('orders  ')` retorna `'orders'`. `$RTRIM('orders@@', '@')` retorna `'orders'`. |
| `$SUBSTR(string, start[, length])` | Extrai texto de `string`, começando na posição baseada em um `start`. `length` especifica o número de caracteres. Se omitido, retorna os caracteres restantes. | `$SUBSTR('abcdef', 2, 3)` retorna `'bcd'`. |
| `$TRIM(string[, characters])` | Remove caracteres de ambas as extremidades de `string`. O argumento opcional `characters` é um conjunto de caracteres a serem removidos, não uma substring. Se omitido, remove os espaços. | `$TRIM('  orders  ')` retorna `'orders'`. `$TRIM('@#orders#@', '@#')` retorna `'orders'`. |
| `$UNICODE(string)` | Retorna o ponto de código Unicode numérico do primeiro caractere em `string`. O argumento deve ser uma string. | `$UNICODE('ABC')` retorna `65`. |
| `$UPPER(string)` | Retorna uma cópia de `string` com as letras ASCII convertidas para maiúsculas. | `$UPPER('abc')` retorna `'ABC'`. |

## Funções numéricas

Use estas funções para calcular valores numéricos para a linha atual. `$MAX` e `$MIN` comparam argumentos dentro da linha, não valores entre linhas.

Argumentos de funções numéricas, comportamento e exemplos

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$ABS(X)` | Retorna o valor absoluto do argumento numérico `X`. | `$ABS(-20)` retorna `20`. |
| `$MAX(arg1, arg2, ...)` | Retorna o maior valor entre os argumentos numéricos fornecidos. Forneça pelo menos dois argumentos. | `$MAX(10, 4, 20, 9)` retorna `20`. |
| `$MIN(arg1, arg2, ...)` | Retorna o menor valor entre os argumentos numéricos fornecidos. Forneça pelo menos dois argumentos. | `$MIN(10, 4, 20, 9)` retorna `4`. |
| `$RANDOM()` | Retorna um número inteiro com sinal pseudoaleatório. Não aceita argumentos. | `$RANDOM()` retorna um número inteiro que pode ser negativo, zero ou positivo. Seu valor varia entre chamadas. |
| `$ROUND(value[, digits])` | Arredonda `value` para `digits` casas decimais e retorna um valor de ponto flutuante. Se `digits` for omitido, arredonda para zero casas decimais. | `$ROUND(3.141592, 3)` retorna `3.142`. |

## Funções LOB

Estas funções trabalham com objetos binários grandes (BLOBs). O argumento de tamanho `N` especifica bytes, não caracteres.

Funções de valor binário

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$HEX(blob)` | Retorna texto hexadecimal em maiúsculas representando os bytes de `blob`. A entrada numérica é primeiro convertida em texto; o resultado não é a representação de máquina do número. | `$HEX(X'4142')` retorna `'4142'`. |
| `$RANDOM_BLOB(N)` | Retorna `N` bytes pseudoaleatórios. Se `N` for menor que 1, retorna um byte. Não utilize esta função como garantia de aleatoriedade criptográfica. | `$RANDOM_BLOB(4)` retorna um BLOB de quatro bytes. Seu valor varia entre chamadas. |
| `$ZERO_BLOB(N)` | Retorna um BLOB contendo `N` bytes zero. | `$HEX($ZERO_BLOB(3))` retorna `'000000'`. |

## Funções de verificação de nulo

Argumentos, comportamento e exemplos da função de verificação de nulos

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$COALESCE(X, Y, ...)` | Retorna o primeiro argumento não NULL, na ordem dos argumentos. Forneça pelo menos dois argumentos. Se todos os argumentos forem NULL, o resultado será NULL. Uma string vazia não é NULL. | `$COALESCE(NULL, 'Unknown')` retorna `'Unknown'`. `$COALESCE('', 'Unknown')` retorna uma string vazia. |
| `$IFNULL(X, Y)` | Retorna `X` se não for NULL; caso contrário, retorna `Y`. Retorna NULL se ambos os argumentos forem NULL. Forneça exatamente dois argumentos. | `$IFNULL(NULL, 'Unknown')` retorna `'Unknown'`. `$IFNULL('Known', 'Unknown')` retorna `'Known'`. |
| `$NULLIF(X, Y)` | Retorna NULL se `X` e `Y` forem iguais; caso contrário, retorna `X`. Forneça exatamente dois argumentos. | `$NULLIF('Unknown', 'Unknown')` retorna NULL. `$NULLIF('Known', 'Unknown')` retorna `'Known'`. |

## Funções de data e hora

Forneça uma string de data, hora ou data/hora como `'2026-10-08'`, `'12:34:56'` ou `'2026-10-08 12:34:56'`. Mantenha as constantes de data entre aspas para que os hifens não sejam interpretados como subtração.

Cálculo e formatação de data

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$DATE(date_string)` | Retorna a data de `date_string` como texto no formato `YYYY-MM-DD`. | `$DATE('2026-10-08')` retorna `'2026-10-08'`. |
| `$DATETIME(datetime_string)` | Retorna a data e hora de `datetime_string` como texto no formato `YYYY-MM-DD HH:MM:SS` stock. | `$DATETIME('2026-10-08 12:34:56')` retorna `'2026-10-08 12:34:56'`. |
| `$JULIANDAY(datetime_string)` | Retorna dias fracionários desde o meio-dia em Greenwich em 24 de novembro de 4714 a.C. Subtraia dois valores de dia juliano para calcular o número de dias decorridos. | `$JULIANDAY('2000-01-01 12:00:00')` retorna `2451545.0`. `$JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08')` retorna `1.0`. |
| `$STRFTIME(format, datetime_string)` | Retorna o texto formatado usando `format`. O formato vem antes da entrada de data ou data e hora. | `$STRFTIME('%Y-%m', '2026-10-08')` retorna `'2026-10'`. |
| `$TIME(time_string)` | Retorna a hora de `time_string` como texto no formato `HH:MM:SS`. | `$TIME('12:34:56')` retorna `'12:34:56'`. |

### Substituições de formato

Combine as seguintes substituições com separadores literais em `$STRFTIME`. Por exemplo, `'%Y-%m-%d %H:%M:%S'` formata tanto a data quanto a hora. Uma substituição não suportada retorna NULL.

Substituições de formato de data e hora

| Substituição | Significado |
| --- | --- |
| `%d` | Dia do mês, 01-31. |
| `%H` | Hora, 00-24. |
| `%f` | Segundos com parte fracionária, SS.SSS. |
| `%j` | Dia do ano, 001-366. |
| `%J` | Número do dia juliano. |
| `%m` | Mês, 01-12. |
| `%M` | Minuto, 00-59. |
| `%s` | Segundos desde 1 de janeiro de 1970, 00:00:00 UTC. |
| `%S` | Segundos, 00-59. |
| `%w` | Dia da semana, 0-6; domingo é 0. |
| `%W` | Semana do ano, 00-53; as semanas começam na segunda-feira. |
| `%Y` | Ano, 0000-9999. |
| `%%` | Um sinal de porcentagem literal. |

## Funções de enriquecimento de dados

Use uma pesquisa para adicionar um valor relacionado, como o nome de um departamento, a partir de uma tabela no endpoint de origem ou de destino.

Argumentos, comportamento e exemplos da função de enriquecimento de dados

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Recupera o valor de `expression` do `table` do endpoint de origem, em `schema`, para o registro que corresponde a `condition`. Os parâmetros da condição fornecem valores para seus marcadores de posição em ordem. | `$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)` recupera o nome do departamento correspondente da origem. |
| `$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Recupera o valor de `expression` do `table` do endpoint de destino, em `schema`, para o registro que corresponde a `condition`. Os parâmetros da condição fornecem valores para seus marcadores de posição em ordem. | `$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)` recupera o nome do departamento correspondente do destino. |

`condition_params` representa uma lista de argumentos separados por vírgula, não um único argumento de array. Ambas as funções usam os seguintes parâmetros:

Parâmetros de pesquisa e seus relacionamentos

| Parâmetro | Significado |
| --- | --- |
| `time_to_live` | Tempo de vida do cache obrigatório, sem valor padrão. Informe o tempo de vida do cache em segundos, `'NO_CACHING'` para desativar o cache, ou `'NO_EXPIRATION'` para manter os resultados em cache sem expiração.<br><br>Tempos de vida curtos atualizam dados que mudam com frequência. Tempos de vida mais longos reduzem as consultas ao endpoint, mas podem retornar valores em cache após a alteração dos dados de pesquisa. Use sem expiração apenas para dados que não mudam. |
| `schema` | Esquema contendo a tabela de pesquisa, fornecido como texto. |
| `table` | Tabela a ser consultada dentro desse esquema, fornecida como texto. |
| `expression` | Expressão SQL que seleciona o valor de uma coluna, como `'DEPARTMENT_NAME'` ou `'PRICE * 1.2'`. Use o dialeto SQL do endpoint que está sendo acessado, e não a sintaxe de função da expressão externa. |
| `condition` | Condição SQL que identifica o registro de pesquisa. Use o dialeto e a sintaxe de placeholder do endpoint acessado: por exemplo, `:1` e `:2` para Oracle, ou `?` para Microsoft SQL Server. |
| `condition_params` | Valores vinculados aos espaços reservados da condição, em ordem. Parâmetros de coluna como `$COMPANY_ID` e `$DEPARTMENT_ID` fornecem valores da linha atual. |

Indexe os campos de pesquisa para reduzir o custo da consulta. Selecione uma condição que identifique o registro desejado e defina o tipo de dados da coluna adicionada para corresponder ao valor selecionado.

Nota informativaTestar chamadas para `$SOURCE_LOOKUP` e `$TARGET_LOOKUP` não é suportado. Consulte [Testando expressões](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm#Testing).

### Exemplo de pesquisa de origem

Para uma origem Oracle, a seguinte expressão recupera `DEPARTMENT_NAME` de `HR.DEPARTMENTS` e armazena o resultado em cache por 60 segundos:

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

Se a linha atual tiver `DEPARTMENT_ID` 10 e o registro de pesquisa correspondente contiver `'Sales'`, o resultado será `'Sales'`.

Para uma origem do Microsoft SQL Server, use sua sintaxe de marcador de posição de condição. Este exemplo vincula os valores de empresa e departamento nessa ordem:

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

### Exemplo de consulta de destino

Para um destino do Microsoft SQL Server, consulte a tabela de destino usando seu dialeto SQL:

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

Se o registro de pesquisa de destino para o departamento 10 contiver `'Sales'`, o resultado para um valor de entrada de 10 é `'Sales'`.

## Funções de operação

Argumentos da função de operação, comportamento e exemplos

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)` | Retorna o sinalizador que você especificar para cada operação de origem. A ordem dos argumentos é delete, update e, em seguida, insert. Use uma coluna dedicada para armazenar os sinalizadores e forneça valores de sinalizador que correspondam ao seu tipo de dados. | `$OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted')` retorna `'Updated'` para uma atualização. |

No Qlik Replicate, esta função também altera o tratamento de exclusão: ela retém o registro de destino correspondente e o sinaliza com `value_on_delete`. Este comportamento de tratamento de exclusão requer confirmação para o Qlik Talend Cloud Data Integration.

## Funções lógicas

Seleção condicional de valor

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$IFF(boolean_expression, true_value, false_value)` | Retorna `true_value` se `boolean_expression` for avaliado como verdadeiro; caso contrário, retorna `false_value`. Forneça a condição primeiro, seguida pelos dois valores de resultado. | `$IFF(10 > 5, 'High', 'Low')` retorna `'High'`. `$IFF(3 > 5, 'High', 'Low')` retorna `'Low'`. |

## Outras funções

Correspondência de padrões e tipos de valor

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$LIKE(pattern, string[, escape_character])` | Retorna 1 para uma correspondência ou 0 para nenhuma correspondência; uma entrada NULL produz NULL. `%` corresponde a zero ou mais caracteres; `_` corresponde a um. A correspondência ignora maiúsculas e minúsculas ASCII por padrão. O escape opcional é de um caractere. O padrão vem primeiro, ao contrário do operador `LIKE`. | `$LIKE('A%', 'Alice')` retorna `1`. `$LIKE('10!%', '10%', '!')` retorna `1`. |
| `$TYPEOF(expression)` | Retorna a classe de armazenamento do valor: `'null'`, `'integer'`, `'real'`, `'text'` ou `'blob'`. Este não é o tipo de coluna de saída configurado. | `$TYPEOF(12.5)` retorna `'real'`. |

## Funções hash

Argumentos, comportamento e exemplos da função hash

| Função | Comportamento e argumentos | Exemplo e resultado |
| --- | --- | --- |
| `$SHA256(string)` | Retorna o hash hexadecimal SHA-256 da string de entrada. | `$SHA256('abc')` retorna `ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad`. |

Um hash não é criptografia. Valores de entrada previsíveis ainda podem ser identificados comparando seus hashes.