# SQL IFNULL(): Alternative Werte statt NULL-Werte ausgeben

Die Funktion SQL IFNULL() wird verwendet, um den Wert eines Ausdrucks zu überprüfen. Ist dieser NULL, wird stattdessen ein alternativer Wert ausgegeben. Ist er nicht NULL, zeigt das System seinen ursprünglichen Wert an.

## Was ist SQL IFNULL()?

In der [Structured Query Language](https://www.ionos.at/digitalguide/server/knowhow/was-ist-sql/) ist die Funktion [SQL COALESCE()](https://www.ionos.at/digitalguide/server/konfiguration/sql-coalesce/) ein wichtiges Werkzeug. Wenn Sie allerdings einen bestimmten Wert ausgeben möchten, sofern ein bestimmter Ausdruck **leer bzw. NULL** ist, können Sie stattdessen SQL IFNULL() verwenden. Diese Funktion überprüft den Ausdruck und führt dann eine von zwei möglichen Aktionen durch: Ist der überprüfte Wert NULL, wird ein alternativer Wert zurückgegeben, den Sie im Vorfeld bestimmen können. Ist der hinterlegte Wert nicht NULL, wird hingegen der normale Ausdruck ausgegeben. Dies mag in der Theorie noch etwas verwirrend klingen. Mit einigen praktischen Beispielen erkennen Sie schnell den Mehrwert der Funktion.

## Syntax und Funktionsweise

Dafür schauen wir uns zunächst die grundsätzliche Syntax von SQL IFNULL() an. So sieht sie aus:

```sql
IFNULL(ausdruck, alternativer_ausdruck);
```

Der erste Ausdruck ist derjenige, der auf seinen Wert hin überprüft werden soll. Der alternative Ausdruck wird ausgegeben, wenn der erste Ausdruck NULL ist.

## Beispiele für die Anwendung der Funktion

Wenn Sie die Funktionsweise von SQL IFNULL() ausprobieren möchten, nutzen Sie diese beiden einfachen Beispiele. Im ersten Versuch wird die Funktion erkennen, dass der Wert des Ausdrucks nicht NULL ist. Dies ist der entsprechende Code:

```sql
IFNULL('Dies ist der erste Ausdruck', 'Dies ist die Alternative');
```

Wenn Sie den Code ausführen, wird die Ausgabe folgendermaßen aussehen:

```sql
Dies ist der erste Ausdruck
```

Der erste Ausdruck hat einen Wert und somit verzichtet die Funktion auf eine Alternative. Anders sieht es im nächsten Beispiel aus:

```sql
IFNULL(' ', 'Dies ist die Alternative');
```

Hier erhalten wir diese Ausgabe:

```sql
Dies ist die Alternative
```

Da der Wert des ersten Ausdrucks NULL ist, greift die Funktion auf die Alternative zurück.

Das funktioniert natürlich auch mit Zahlenwerten:

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

Wir erhalten diese Ausgabe:

```sql
10
```

Ohne hinterlegten Wert kommt SQL IFNULL() zum Tragen:

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

Die Ausgabe sieht so aus:

```sql
15
```

## Ein Beispiel aus der Praxis

Eine Einsatzmöglichkeit von SQL IFNULL() könnte nun folgendermaßen aussehen. Wir haben eine Tabelle namens „Lieferungen“; diese hat Spalten für Name, Lieferadresse und Rechnungsadresse:

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Lieferadresse</th>
      <th>Rechnungsadresse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Schmidt</td>
      <td>Schillerstraße 17</td>
      <td>Schillerstraße 17</td>
    </tr>
    <tr>
      <td>Schulz</td>
      <td>Blumenweg 6</td>
      <td>Langestraße 548</td>
    </tr>
    <tr>
      <td>Peters</td>
      <td>Kleiststraße 32</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>Müller</td>
      <td>Im Winkel 77</td>
      <td>Körnerweg 62</td>
    </tr>
    <tr>
      <td>Becker</td>
      <td>Am Rosenhof 41</td>
      <td>Am Rosenhof 41</td>
    </tr>
  </tbody>
</table>

Ein Kunde bzw. eine Kundin hat also lediglich eine Lieferadresse angegeben und auf eine Rechnungsadresse verzichtet. Möchten Sie nun dafür sorgen, dass zumindest alle Einträge vollständig sind, nutzen Sie dafür SQL IFNULL(). Der passende Code mit dem [SQL-Befehl](https://www.ionos.at/digitalguide/server/konfiguration/sql-befehle/) `SELECT` sieht so aus:

```sql
SELECT Name, IFNULL(Rechnungsadresse, Lieferadresse) Adresse
FROM Lieferungen;
```

Dadurch erhalten wir eine neue Tabelle, in der zumindest für jeden Kunden und jede Kundin eine Adresse hinterlegt ist:

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Adresse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Schmidt</td>
      <td>Schillerstraße 17</td>
    </tr>
    <tr>
      <td>Schulz</td>
      <td>Blumenweg 6</td>
    </tr>
    <tr>
      <td>Peters</td>
      <td>Kleiststraße 32</td>
    </tr>
    <tr>
      <td>Müller</td>
      <td>Im Winkel 77</td>
    </tr>
    <tr>
      <td>Becker</td>
      <td>Am Rosenhof 41</td>
    </tr>
  </tbody>
</table>

## Alternativen zu SQL IFNULL()

Neben der angesprochenen Funktion `COALESCE()` gibt es weitere Alternativen zu SQL IFNULL(). [SQL NVL()](https://www.ionos.at/digitalguide/server/konfiguration/sql-nvl/) konvertiert ebenfalls einen Wert NULL in einen Wert Ihrer Wahl. [SQL ISNULL()](https://www.ionos.at/digitalguide/server/konfiguration/sql-isnull/) überprüft auch, ob ein Wert NULL ist oder nicht, und ersetzt ihn dann bei Bedarf mit einem definierten Wert.

Tipp Die perfekte Datenbank für Ihre Ansprüche: Mit [SQL-Server-Hosting](https://www.ionos.at/cloud/sql-server-hosting "SQL-Server-Hosting von IONOS") von IONOS wählen Sie zwischen MSSQL, MySQL oder MariaDB und profitieren von Top-Performance und starken Sicherheitsfeatures.


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