# Gestione dei valori NULL

Quando non è possibile produrre dati per un determinato campo come risultato di una richiesta di database e/o di un'unione di tabelle, generalmente viene restituito il valore NULL.



## Panoramica

La logica di Qlik Sense interpreta i casi seguenti come valori NULL reali:

* Valori NULL restituiti da una connessione ODBC

* Valori NULL creati come risultato di una concatenazione forzata di tabelle nello script di caricamento dei dati.

* Valori NULL creati come risultato di un'unione eseguita nello script di caricamento dei dati

* Valori NULL creati come risultato della generazione di combinazioni di valori di campo da visualizzare in una tabella

Nota informaticaIn generale, non è possibile utilizzare questi valori NULL per le associazioni e le selezioni, tranne quando si utilizza l'istruzione NullAsValue.

Per ulteriori informazioni su NullAsValue, vedere [NullAsValue](https://help.qlik.com/it-IT/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/NullAsValue.htm).

I file di testo non possono contenere valori NULL per definizione.

## Associazione/selezione di valori NULL da ODBC

È possibile associare e/o selezionare valori NULL da una sorgente dati ODBC. Per questo motivo è stata definita una variabile di script. È possibile utilizzare la seguente sintassi:

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)SET NULLDISPLAY=&lt;sym&gt;;

Il simbolo &lt;sym&gt; sostituirà tutti i valori NULL provenienti dalla sorgente dati ODBC al livello più basso dell'input dati. &lt;sym&gt; può essere una stringa qualsiasi.

Per ripristinare questa funzionalità sull'interpretazione predefinita, utilizzare la seguente sintassi:

SET NULLDISPLAY=;

Nota informaticaL'uso di NULLDISPLAY interessa solo i dati acquisiti da una sorgente dati ODBC.

Se si desidera che la logica di Qlik Sense interpreti i valori NULL restituiti da una connessione ODBC come una stringa vuota, aggiungere quanto segue allo script prima di qualsiasi istruzione SELECT:

SET NULLDISPLAY=";

Nota informaticaIn questo caso, il simbolo '' rappresenta effettivamente due virgolette singole senza spazi al centro.

Per ulteriori informazioni su NullDisplay, vedere [NullDisplay](https://help.qlik.com/it-IT/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullDisplay.htm).

## Creazione di valori NULL da file di testo

È possibile definire un simbolo che, se rilevato in un file di testo o in una clausola inline, verrà interpretato come valore NULL reale. Utilizzare l'istruzione seguente:

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)SET NULLINTERPRET=&lt;sym&gt;;

Il simbolo &lt;sym&gt; verrà interpretato come NULL. &lt;sym&gt; può essere una stringa qualsiasi.

Per ripristinare questa funzionalità sull'interpretazione predefinita, utilizzare:

SET NULLINTERPRET=;

Nota informatica L'uso di NULLINTERPRET interessa esclusivamente i dati da file di testo e clausole inline.

Per ulteriori informazioni su NullInterpret, vedere [NullInterpret](https://help.qlik.com/it-IT/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullInterpret.htm).

## Propagazione dei valori NULL nelle espressioni

I valori NULL si propagano attraverso un'espressione, in base a poche regole logiche e completamente comprensibili.

### Funzioni

La regola generale è che tale funzione restituisce un valore NULL quando i parametri non rientrano nella scala per cui è definita la funzione.

Esempi

| Espressione | Risultato |
| --- | --- |
| asin(2) | restituisce NULL |
| log(-5) | restituisce NULL |
| round(A,0) | restituisce NULL |

Come risultato dell'esempio precedente, in genere questo tipo di funzioni restituisce un valore NULL quando il valore di uno dei parametri necessari per la valutazione è NULL.

Esempi

| Espressione | Risultato |
| --- | --- |
| sin(NULL) | restituisce NULL |
| chr(NULL) | restituisce NULL |
| if(NULL, A, B) | restituisce B |
| if(True, NULL, A) | restituisce NULL |
| if(True, A, NULL) | restituisce A |

L'eccezione relativa alla seconda regola concerne funzioni logiche di verifica del tipo.

Esempi

| Espressione | Risultato |
| --- | --- |
| isnull(NULL) | restituisce True (-1) |
| isnum(NULL) | restituisce False (0) |

### Operatori aritmetici e su stringa

Se NULL è presente in uno di questi operatori, viene restituito NULL.

Esempi

| Espressione | Risultato |
| --- | --- |
| A + NULL | restituisce NULL |
| A - NULL | restituisce NULL |
| A / NULL | restituisce NULL |
| A \* NULL | restituisce NULL |
| NULL / A | restituisce NULL |
| 0 / NULL | restituisce NULL |
| 0 \* NULL | restituisce NULL |
| A & NULL | restituisce A |

### Operatori relazionali

Se è presente un valore NULL in una qualsiasi parte degli operatori relazionali, si applicano delle regole speciali.

Esempi

| Espressione | Risultato |
| --- | --- |
| NULL (qualsiasi operatore relazionale) NULL | restituisce NULL |
| A &lt;&gt; NULL | restituisce True (-1) |
| A &lt; NULL | restituisce False (0) |
| A &lt;= NULL | restituisce False (0) |
| A = NULL | restituisce False (0) |
| A &gt;= NULL | restituisce False (0) |
| A &gt; NULL | restituisce False (0) |