# coalesceScript- en diagramfunctie

De functie coalesce retourneert de eerste parameter waaraan een geldige non-NULL kan worden toegewezen. U kunt een willekeurig aantal parameters gebruiken.

Syntaxis:

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

Retourgegevenstypen: dubbele waarde

Argumenten

| Argument | Beschrijving |
| --- | --- |
| expr1 | De eerste uitdrukking voor controle op een geldige niet-null getalsnotatie. |
| expr2 | De tweede uitdrukking voor controle op een geldige niet-null getalsnotatie. |
| expr3 | De derde uitdrukking voor controle op een geldige niet-null getalsnotatie. |

Voorbeelden: diagramuitdrukkingen

| Voorbeeld | Resultaat |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Deze uitdrukking selecteert drie verschillende velden met een productomschrijving als sommige velden geen waarden voor het product bevatten. Volgt de volgorde die in de functie wordt vermeld, en het eerste veld met een niet-null waarde wordt geretourneerd. Als geen enkel veld een waarde bevat, is het resultaat `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Deze uitdrukking zorgt ervoor dat de tekst tussen aanhalingstekens van het veld `FileName` wordt ingekort. Als de opgegeven `FileName` tussen aanhalingstekens staat, wordt deze verwijderd en wordt de ingesloten `FileName` zonder aanhalingstekens geretourneerd. Als de functie `TextBetween` de scheidingstekens niet kan vinden, wordt null geretourneerd. De Coalesce zal deze afwijzen en in plaats daarvan de onbewerkte `FileName` retourneren. |

## Voorbeeld - Basisprincipes voor Coalesce

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

#### Diagramuitdrukking

Overzicht

Er wordt een gegevenstabel geladen die de product- en prijsgegevens bevat. U wilt ervoor zorgen dat eventuele null-waarden worden vervangen door een alternatieve waarde.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `ProductID`

  * `ProductName`

  * `Price`

* Een `NullInterpret` variabele opdracht om ervoor te zorgen dat ontbrekende waarden als NULL worden behandeld.

Load-script

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

Resultaten

1. Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

   * `ProductID`

   * `ProductName`

2. Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:

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

3. Maak de volgende meting:

   * `=Sum(Price)`, om een geldige getalrepresentatie te retourneren.

4. Maak een nieuwe tabel en voeg de volgende uitdrukking toe als een berekende dimensie:

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

5. Maak de volgende meting:

   * `=Sum(Price)`, om een geldige getalrepresentatie te retourneren.

De resultaten in de volgende tabellen laten zien hoe de functie `Coalesce` de null-waarden in de oorspronkelijke gegevensverzameling kan vervangen door de alternatieve waarde `Unknown Product`.

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

Resultaten tabel 2

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

## Voorbeeld - Null-waarden vervangen door een alternatieve waarde met prioriteit

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

#### Diagramuitdrukking

Overzicht

Dit voorbeeld gebruikt de functie `Coalesce` om ontbrekende locatiegegevens te vervangen door een alternatieve waarde volgens de opgegeven prioriteitslogica.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Een `NullInterpret` variabele opdracht om ervoor te zorgen dat ontbrekende waarden als NULL worden behandeld.

Load-script

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

Resultaten

1. Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:

   * `=Coalesce(Country, State, City)`, om eventuele null-waarden aan te vullen met alternatieven.

Resultatentabel

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

De resultaten laten zien dat er weliswaar ontbrekende waarden zijn, maar dat u de functie `Coalesce` kunt gebruiken om logica te verschaffen over hoe deze exemplaren moeten worden gevuld met een alternatieve waarde om de gegevensverzameling te voltooien. Bijvoorbeeld, `L004` mist een waarde voor `Country`. De functie `Coalesce` retourneert `New South Wales` omdat `State` het tweede veld is dat in de prioriteitslogica wordt vermeld om te gebruiken wanneer de waarde voor `Country` ontbreekt.