# SQL IFNULL(): restituire valori alternativi invece di valori NULL

La funzione SQL IFNULL() si usa per verificare il valore di un’espressione. Se l’espressione restituisce NULL, la funzione interviene sostituendo tale valore con un valore alternativo. Se invece il valore non è NULL, il sistema visualizza il valore originario.

## Cos’è SQL IFNULL()?

Lo [Structured Query Language](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) dispone di una funzione importante per verificare le espressioni: [SQL COALESCE()](https://www.ionos.it/digitalguide/server/configurazione/sql-coalesce/). Tuttavia, se un’espressione risulta **vuota o NULL** e desideri visualizzare un valore specifico, puoi usare la funzione SQL IFNULL(). Questa funzione esamina l’espressione in questione e stabilisce come procedere: se l’espressione è NULL, restituisce un valore alternativo precedentemente specificato; in caso contrario, restituisce l’espressione normale. Sebbene la teoria possa apparire un po’ confusa, grazie ad alcuni esempi pratici potrai comprendere facilmente l’utilità di questa funzione.

## Sintassi e funzionamento

Anzitutto esaminiamo la sintassi di SQL IFNULL(). Il codice si scrive così:

```sql
IFNULL(espressione, espressione_alternativa);
```

La prima espressione è quella presa in esame. Qualora il primo valore sia pari a NULL, la funzione restituisce un’espressione alternativa.

## Esempi di utilizzo della funzione

Per capire come funziona SQL IFNULL() puoi usare questi semplici esempi. Nel primo caso, la funzione riconosce che il valore dell’espressione non è NULL. Questo il relativo codice:

```sql
IFNULL('Questa è la prima espressione', 'Questa è un’alternativa');
```

Quando esegui il codice, l’output sarà il seguente:

```sql
Questa è la prima espressione
```

La prima espressione presenta un determinato valore e pertanto la funzione non restituisce alcuna alternativa. Il secondo esempio è un po’ diverso:

```sql
IFNULL(' ', 'Questa è l’alternativa');
```

L’output ottenuto con il comando è il seguente:

```sql
Questa è l’alternativa
```

Poiché il valore della prima espressione è NULL, la funzione restituisce l’alternativa specificata.

Naturalmente questo principio funziona anche con valori numerici:

```sql
IFNULL(10, 15);
```

L’output è il seguente:

```sql
10
```

Se il valore non è definito, SQL IFNULL() entra in funzione:

```sql
IFNULL(NULL, 15);
```

L’output è il seguente:

```sql
15
```

## Un esempio pratico

Di seguito presentiamo un caso d’uso per SQL IFNULL(). La tabella “Consegne” include colonne relative a cognome, indirizzo di consegna e indirizzo di fatturazione:

<table>
  <thead>
    <tr>
      <th>Cognome</th>
      <th>Indirizzo di consegna</th>
      <th>Indirizzo di fatturazione</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Rossi</td>
      <td>Via Marconi 17</td>
      <td>Via Marconi 17</td>
    </tr>
    <tr>
      <td>Bianchi</td>
      <td>Via dei Tigli 6</td>
      <td>Via dei Tigli 548</td>
    </tr>
    <tr>
      <td>Ferrari</td>
      <td>Via Mazzini 32</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>Costa</td>
      <td>Viale dei Cipressi 77</td>
      <td>Via III Novembre 62</td>
    </tr>
    <tr>
      <td>Russo</td>
      <td>Piazza Dante 41</td>
      <td>Piazza Dante 41</td>
    </tr>
  </tbody>
</table>

Un cliente ha digitato l’indirizzo di consegna, ma non quello di fatturazione. Se vuoi che tutte le voci presentino almeno un valore puoi usare SQL IFNULL(). La seguente espressione unita al [comando SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) `SELECT` si scrive così:

```sql
SELECT Cognome, IFNULL(Indirizzo di fatturazione, Indirizzo di consegna) Indirizzo
FROM Consegne;
```

In questo modo otteniamo una tabella che contiene almeno un indirizzo per ciascun cliente:

<table>
  <thead>
    <tr>
      <th>Cognome</th>
      <th>Indirizzo di consegna</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Rossi</td>
      <td>Via Marconi 17</td>
    </tr>
    <tr>
      <td>Bianchi</td>
      <td>Via dei Tigli 6</td>
    </tr>
    <tr>
      <td>Ferrari</td>
      <td>Via Mazzini 32</td>
    </tr>
    <tr>
      <td>Costa</td>
      <td>Viale dei Cipressi 77</td>
    </tr>
    <tr>
      <td>Russo</td>
      <td>Piazza Dante 41</td>
    </tr>
  </tbody>
</table>

## Alternative a SQL IFNULL()

Oltre alla funzione `COALESCE()`, che abbiamo già menzionato, esistono diverse alternative a SQL IFNULL(). Anche [SQL NVL()](https://www.ionos.it/digitalguide/server/configurazione/sql-nvl/) converte un valore NULL in un altro valore a scelta. Anche [SQL ISNULL()](https://www.ionos.it/digitalguide/server/configurazione/isnull-sql/) verifica se si tratta di un valore NULL e, in caso affermativo, lo sostituisce con un valore definito.

Consiglio Il database perfetto per le tue esigenze: grazie all’[hosting SQL server](https://www.ionos.it/cloud/sql-server-hosting "Hosting SQL server di IONOS") di IONOS scegli fra MSSQL, MySQL o MariaDB e approfitti di ottime prestazioni e di numerose funzionalità di sicurezza.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-ifnull/](https://www.ionos.it/digitalguide/server/configurazione/sql-ifnull/) for AI/LLM consumption.