# coalesceSkript- och diagramfunktion

Coalesce-funktionen returnerar den första av parametrarna som har en giltig non-NULL-representation. Det finns inga begränsningar vad gäller antalet parametrar.

Syntax:

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

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| expr1 | Det första uttrycket som ska kontrolleras om det har något giltigt icke-NULL-värde. |
| expr2 | Det andra uttrycket som ska kontrolleras om det har något giltigt icke-NULL-värde. |
| expr3 | Det tredje uttrycket som ska kontrolleras om det har något giltigt icke-NULL-värde. |

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Det här uttrycket väljer mellan tre olika produktbeskrivningsfält när vissa fält inte har värden för produkten. Genom att följa den ordning som anges i funktionen returneras det första fältet med ett icke-nullvärde. Om inget av fälten innehåller ett värde blir resultatet `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Det här uttrycket tar bort eventuella citattecken runt fältet `FileName`. Om det `FileName` som används omges av citattecken tas de bort, och `FileName` returneras utan citattecknen. Om funktionen `TextBetween` inte hittar avgränsarna returnerar den null, vilket Coalesce avvisar, och returnerar `FileName` i råformat. |

## Exempel – grunderna i Coalesce

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

#### Diagramuttryck

Översikt

En datatabell laddas som innehåller produkt- och prisdata. Du vill se till att alla null-värden ersätts med ett alternativt värde.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `ProductID`

  * `ProductName`

  * `Price`

* En `NullInterpret`-variabelsats för att säkerställa att eventuella saknade värden behandlas som NULL.

Laddningsskript

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

Resultat

1. Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

   * `ProductID`

   * `ProductName`

2. Skapa följande beräknade dimension:

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

3. Skapa följande mått:

   * `=Sum(Price)` för att returnera en giltig talrepresentation.

4. Skapa en ny tabell och lägg till följande uttryck som en beräknad dimension:

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

5. Skapa följande mått:

   * `=Sum(Price)` för att returnera en giltig talrepresentation.

Resultaten i de följande tabellerna visar hur funktionen `Coalesce` kan ersätta nollvärdena i den ursprungliga datauppsättningen med det alternativa värdet `Unknown Product`.

Resultattabell 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 |  |

Resultattabell 2

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

## Exempel – Ersätt nollvärden med ett prioriterat alternativvärde

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

#### Diagramuttryck

Översikt

I detta exempel används funktionen `Coalesce` för att ersätta saknade uppgifter om plats med ett alternativt värde enligt den angivna prioritetslogiken.

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* En `NullInterpret`-variabelsats för att säkerställa att eventuella saknade värden behandlas som NULL.

Laddningsskript

```
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
];
```

Resultat

1. Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Skapa följande beräknade dimension:

   * `=Coalesce(Country, State, City)`, för att fylla i eventuella nollvärden med alternativ.

Resultattabell

| 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 |

Resultaten visar att även om det finns saknade värden kan du använda funktionen `Coalesce` för att tillhandahålla logik om hur du fyller i dessa instanser med ett alternativt värde för att komplettera datauppsättningen. Till exempel saknar `L004` ett värde för `Country`. Funktionen `Coalesce` returnerar `New South Wales` eftersom `State` är det andra fältet i prioritetslogiken som ska användas när värdet för `Country` saknas.