# coalesceFunção de script e de gráfico

A função coalesce retorna o primeiro dos parâmetros que possui uma representação válida de non-NULL. É possível usar qualquer número de parâmetros.

Sintaxe:

coalesce(expr1[ , expr2 , expr3 , ...])

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| expr1 | A primeira expressão para verificar se há uma representação não NULL válida. |
| expr2 | A segunda expressão para verificar se há uma representação não NULL válida. |
| expr3 | A terceira expressão para verificar se há uma representação não NULL válida. |

Exemplos: expressões de gráfico

| Exemplo | Resultado |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Esta expressão selecionará entre três campos de descrição de produto diferentes quando alguns campos não tiverem valores para o produto. Seguindo a ordem listada na função, o primeiro campo com um valor não nulo é retornado. Se nenhum dos campos contiver um valor, o resultado será `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Essa expressão eliminará possíveis aspas de delimitação do campo `FileName`. Se o `FileName` fornecido estiver entre apas, essas serão removidas, e um `FileName` delimitado sem aspas será retornado. Se a função `TextBetween` não encontrar os delimitadores, ela retornará null, que Coalesce rejeitará, retornando em vez disso o `FileName` bruto. |

## Exemplo - Fundamentos de Coalesce

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/coalesce.htm)

#### Expressão de gráfico

Visão geral

Uma tabela de dados é carregada contendo dados de produto e preço. Você deseja garantir que todos os valores nulos sejam substituídos por um valor alternativo.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `ProductID`

  * `ProductName`

  * `Price`

* Uma declaração da variável `NullInterpret` para garantir que todos os valores ausentes sejam tratados como NULL.

Script de carregamento

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, Price
1, Laptop, 1000
2, , 800
3, Desktop, 1200
4, , 500
5, Tablet, 600
];
```

Resultados

1. Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

   * `ProductID`

   * `ProductName`

2. Crie a seguinte dimensão calculada:

   * `=Coalesce(ProductName, 'Unknown Product')`

3. Crie a seguinte medida:

   * `=Sum(Price)`, para retornar uma representação numérica válida.

4. Crie uma nova tabela e adicione a seguinte expressão como uma dimensão calculada:

   * `=Coalesce(ProductName, 'Unknown Product')`

5. Crie a seguinte medida:

   * `=Sum(Price)`, para retornar uma representação numérica válida.

Os resultados das tabelas a seguir mostram como a função `Coalesce` pode substituir os valores nulos no conjunto de dados original pelo valor alternativo `Unknown Product`.

Tabela de resultados 1

| ProductID | ProductName | Coalesce(ProductName, 'Unknown Product') | Sum(Price) |  |
| --- | --- | --- | --- | --- |
| Totals |  |  | 4100 |  |
| 1 | Laptop | Laptop | 1000 |  |
| 2 | - | Unknown Product | 800 |  |
| 3 | Desktop | Desktop | 1200 |  |
| 4 | - | Unknown Product | 500 |  |
| 5 | Tablet | Tablet | 600 |  |

Tabela de resultados 2

| Coalesce(ProductName, 'Unknown Product') | Sum(Price) |
| --- | --- |
| Totals | 5 |
| Desktop | 600 |
| Laptop | 1000 |
| Tablet | 600 |
| Unknown Product | 1300 |

## Exemplo – Substituir valores nulos por um valor alternativo priorizado

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/coalesce.htm)

#### Expressão de gráfico

Visão geral

Este exemplo usa a função `Coalesce` para substituir os dados de localização ausentes por um valor alternativo de acordo com a lógica de prioridade especificada.

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados que é carregado em uma tabela de dados denominada `Example`.

* Os campos a seguir na tabela de dados:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Uma declaração da variável `NullInterpret` para garantir que todos os valores ausentes sejam tratados como NULL.

Script de carregamento

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
LocationID, Country, State, City
L001, USA, California, Los Angeles
L002, USA, ,
L003, Canada, Ontario,
L004, , New South Wales, Sydney
L005, UK, , London
L006, , , London
];
```

Resultados

1. Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Crie a seguinte dimensão calculada:

   * `=Coalesce(Country, State, City)`, para preencher os valores nulos com alternativos.

Tabela de resultados

| LocationID | Country | State | City | Coalesce(Country, State, City) |
| --- | --- | --- | --- | --- |
| L001 | USA | California | Los Angeles | USA |
| L002 | USA | - | - | USA |
| L003 | Canada | Ontario | - | Canada |
| L004 | - | New South Wales | Sydney | New South Wales |
| L005 | UK | - | London | UK |
| L006 | - | - | London | London |

Os resultados mostram que, embora haja valores ausentes, você pode usar a função `Coalesce` para fornecer lógica sobre como preencher essas instâncias com um valor alternativo para completar o conjunto de dados. Por exemplo, `L004` está faltando um valor `Country`. A função `Coalesce` retorna `New South Wales` porque `State` é o segundo campo listado na lógica de prioridade a ser usado quando o valor de `Country` estiver ausente.