# coalesceFunzione per script e grafici

La funzione coalesce restituisce il primo dei parametri che presenta una rappresentazione non-NULL valida. Può essere utilizzato un numero qualsiasi di parametri.

Sintassi:

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

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| expr1 | La prima espressione da controllare con una rappresentazione non-NULL valida. |
| expr2 | La seconda espressione da controllare con una rappresentazione non-NULL valida. |
| expr3 | La terza espressione da controllare con una rappresentazione non-NULL valida. |

Esempio: espressioni del grafico

| Esempio | Risultato |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Questa espressione selezionerà tra tre diversi campi con la descrizione dei prodotti, utili quando alcuni campi non dispongono di valori per il prodotto. Seguendo l'ordine elencato nella funzione, viene restituito il primo campo con un valore non nullo. Se nessuno dei campi contiene un valore, il risultato sarà `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Questa espressione rimuoverà potenziali virgolette di chiusura dal campo `FileName`. Se il valore `FileName` fornito appare tra virgolette, queste verranno rimosse e verrà restituito il valore `FileName` senza virgolette. Se la funzione `TextBetween` non trova i delimitatori restituisce null, che Coalesce rifiuta, restituendo invece il valore `FileName` non elaborato. |

## Esempio: principi fondamentali della funzione Coalesce

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

#### Espressione del grafico

Panoramica

Viene caricata una tabella dati che contiene i dati su prodotti e prezzi. Bisogna assicurarsi che qualsiasi valore null venga sostituito con un valore alternativo.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `ProductID`

  * `ProductName`

  * `Price`

* Un'istruzione di variabile `NullInterpret` consente di garantire che qualsiasi valore mancante sia trattato come NULL.

Script di caricamento

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

Risultati

1. Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

   * `ProductID`

   * `ProductName`

2. Creare la seguente dimensione calcolata:

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

3. Creare la seguente misura:

   * `=Sum(Price)`, per restituire una rappresentazione numerica valida.

4. Creare una nuova tabella e aggiungere la seguente espressione come dimensione calcolata:

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

5. Creare la seguente misura:

   * `=Sum(Price)`, per restituire una rappresentazione numerica valida.

I risultati nelle tabelle seguenti mostrano come la funzione `Coalesce` può sostituire i valori null nel set di dati originale con il valore alternativo `Unknown Product`.

Tabella dei risultati 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 |  |

Tabella dei risultati 2

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

## Esempio: sostituzione dei valori null con un valore alternativo prioritario

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

#### Espressione del grafico

Panoramica

Questo esempio utilizza la funzione `Coalesce` per sostituire i dati di posizione mancanti con un valore alternativo in base alla logica di priorità specificata.

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella dati chiamata `Example`.

* I seguenti campi nella tabella dati:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Un'istruzione di variabile `NullInterpret` consente di garantire che qualsiasi valore mancante sia trattato come NULL.

Script di caricamento

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

Risultati

1. Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Creare la seguente dimensione calcolata:

   * `=Coalesce(Country, State, City)`, per riempire i valori null con valori alternativi.

Tabella dei risultati

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

I risultati mostrano che, sebbene vi siano dei valori mancanti, è possibile utilizzare la funzione `Coalesce` per fornire una logica su come popolare queste istanze con un valore alternativo per completare il set di dati. Ad esempio, in `L004` manca un valore per `Country`. La funzione `Coalesce` restituisce `New South Wales` perché `State` è il secondo campo elencato nella logica di priorità da utilizzare quando il valore di `Country` è mancante.