# Operadores de expressão

Use operadores para calcular valores, comparar entradas e combinar condições quando [Construindo expressões](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

A semântica a seguir se aplica às expressões de tarefas de movimento. Expressões executadas em uma plataforma de dados em nuvem usam a semântica dessa plataforma. Coloque espaços ao redor dos operadores e coloque entre aspas as constantes de texto e de data, como `$HIRE_DATE < '2026-10-08'`.

## Operadores aritméticos

Operações aritméticas em valores numéricos

| Operador | Significado | Exemplo e resultado |
| --- | --- | --- |
| `+` | Soma os dois operandos. | `2 + 3` retorna `5`. |
| `-` | Subtrai o operando direito do esquerdo. Um sinal de menos inicial nega um valor. | `5 - 2` retorna `3`. |
| `*` | Multiplica os operandos. | `3 * 4` retorna `12`. |
| `/` | Divide o operando esquerdo pelo direito. A divisão inteira trunca em direção a zero. Um operando real preserva um resultado fracionário. A divisão por zero retorna NULL. | `7 / 2` retorna `3`; `7.0 / 2` retorna `3.5`. |
| `%` | Converte ambos os operandos em inteiros e retorna o resto da divisão. Esse não é um cálculo de porcentagem. | `7 % 3` retorna `1`. |

## Operadores de comparação

As comparações retornam 1 para verdadeiro e 0 para falso. Comparações comuns com NULL retornam NULL; use `IS` ou `IS NOT` para testar valores ausentes.

Comparando dois valores

| Operador | Significado | Exemplo e resultado |
| --- | --- | --- |
| `=` | Testa a igualdade. | `3 = 3` retorna `1`. |
| `!=` | Testa a desigualdade. | `3 != 4` retorna `1`. |
| `<>` | Operador de desigualdade alternativo. | `3 <> 3` retorna `0`. |
| `<` | Verifica se o valor à esquerda é menor. | `2 < 3` retorna `1`. |
| `<=` | Testa menor que ou igual a. | `3 <= 3` retorna `1`. |
| `>` | Testa se o valor à esquerda é maior. | `4 > 3` retorna `1`. |
| `>=` | Testa se é maior que ou igual a. | `3 >= 3` retorna `1`. |
| `IS` | Testa a igualdade sem retornar NULL. Dois valores NULL são iguais; um valor NULL e um valor não NULL não são. | `NULL IS NULL` retorna `1`. |
| `IS NOT` | Testa a desigualdade sem retornar NULL. | `NULL IS NOT 3` retorna `1`. |

## Operadores lógicos e condicionais

Combinar condições e selecionar valores

| Operador | Significado | Exemplo e resultado |
| --- | --- | --- |
| `AND` | Verdadeiro quando ambas as condições forem verdadeiras. Um operando falso torna o resultado falso, mesmo que o outro operando seja NULL. | `(3 > 2) AND (4 < 3)` retorna `0`. |
| `OR` | Verdadeiro quando qualquer uma das condições for verdadeira. Um operando verdadeiro torna o resultado verdadeiro, mesmo que o outro operando seja NULL. | `(3 > 2) OR (4 < 3)` retorna `1`. |
| `IN` | Testa a pertinência em uma lista entre parênteses. Se nenhum valor corresponder e a lista contiver NULL, retorna NULL. Uma lista vazia retorna 0, inclusive para um operando à esquerda NULL. | `2 IN (1, 2, 3)` retorna `1`; `4 IN (1, NULL)` retorna NULL. |
| `CASE` | Retorna a primeira ramificação correspondente. Com um valor base, compara-o a cada valor WHEN. Sem uma, testa cada condição WHEN. Usa ELSE se nenhuma ramificação corresponder, ou NULL se ELSE estiver ausente. | `CASE WHEN 5 > 3 THEN 'High' ELSE 'Low' END` retorna `'High'`. `CASE 2 WHEN 1 THEN 'One' WHEN 2 THEN 'Two' END` retorna `'Two'`. |

## Operadores de string e padrão

Unir texto e corresponder a padrões

| Operador | Significado | Exemplo e resultado |
| --- | --- | --- |
| `\|\|` | Concatena valores de texto. Um operando NULL produz NULL. | `'John' \|\| ' ' \|\| 'Smith'` retorna `'John Smith'`. |
| `LIKE` | Compara a string da esquerda com o padrão da direita. `%` corresponde a zero ou mais caracteres; `_` corresponde a um. Ignora a distinção entre maiúsculas e minúsculas de caracteres ASCII por padrão, mas não diferenças de maiúsculas e minúsculas de caracteres não ASCII. ESCAPE especifica um único caractere para caracteres curinga literais. | `'Alice' LIKE 'A%'` retorna `1`. `'10%' LIKE '10!%' ESCAPE '!'` retorna `1`. |
| `GLOB` | Correspondência com distinção entre maiúsculas e minúsculas usando padrões no estilo Unix. `*` corresponde a zero ou mais caracteres, `?` corresponde a um, e os colchetes definem um conjunto de caracteres. | `'file.csv' GLOB '*.csv'` retorna `1`; `'File.CSV' GLOB '*.csv'` retorna `0`. |
| `MATCH` | Delega para a função `match()` definida pelo aplicativo. É necessária uma implementação utilizável; a implementação padrão do SQLite gera um erro. | `'Quarterly sales' MATCH 'sales'` ilustra a sintaxe. O resultado depende da implementação da aplicação. |
| `REGEXP` | Delega para a função `regexp()` definida pelo aplicativo. O SQLite não fornece esta função por padrão. | `'ABC123' REGEXP '^[A-Z]+[0-9]+$'` ilustra a sintaxe. Sem uma implementação, a avaliação falha. |

## Operadores bit a bit

Esses operadores binários atuam em bits de inteiros, não em condições lógicas. `|` significa OR bit a bit, mesmo que o editor também o liste em uma categoria lógica.

Operações de bits em inteiros

| Operador | Significado | Exemplo e resultado |
| --- | --- | --- |
| `<<` | Desloca o inteiro à esquerda para a esquerda pelo número de bits do operando à direita. | `3 << 1` retorna `6`. |
| `>>` | Desloca o inteiro à esquerda para a direita pelo número de bits no operando à direita. | `8 >> 1` retorna `4`. |
| `&` | AND bit a bit: define um bit no resultado apenas onde ambos os operandos têm esse bit definido. | `6 & 3` retorna `2`. |
| `\|` | OR bit a bit: define um bit de resultado onde qualquer um dos operandos tem esse bit definido. | `6 \| 3` retorna `7`. |

## Ordem de avaliação e valores ausentes

Para os operadores binários acima, a precedência da mais alta para a mais baixa é concatenação; multiplicação, divisão e resto; adição e subtração; operações bit a bit; comparações ordenadas; testes de igualdade e de padrão; AND; e depois OR. Operadores no mesmo nível são avaliados da esquerda para a direita. Os parênteses substituem esta ordem: `(2 + 3) * 4` retorna `20`, enquanto `2 + 3 * 4` retorna `14`.

A maioria dos operadores retorna NULL quando um operando é NULL. As exceções descritas acima incluem `IS`, `IS NOT` e casos específicos de `AND`, `OR` e `IN`. Use `$COALESCE` quando um valor ausente deve ter uma substituição. Consulte [Funções de expressão](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm).