# SQL ISNULL(): NULL-Werte überprüfen und ersetzen

SQL ISNULL() wird genutzt, um zu überprüfen, ob ein Ausdruck den Wert NULL hat. Ist dies der Fall, ersetzt die Funktion NULL mit einem Ersatzwert desselben Datentyps.

## Was ist SQL ISNULL()?

In der [Structured Query Language](https://www.ionos.at/digitalguide/server/knowhow/was-ist-sql/) können Sie Tabellen erstellen und diese mit Werten füllen. Wenn Sie darauf verzichten, einem Feld innerhalb der Tabelle einen Wert zuzuweisen, bleibt dieses Feld leer. Es erhält dadurch den Wert NULL, der anzeigt, dass kein tatsächlicher Wert vorliegt. Angenommen, Sie wollen nun dafür sorgen, dass **statt NULL ein Ersatzwert berücksichtigt** wird. Dazu stellt Ihnen die Sprache unter anderem die Funktion SQL ISNULL() zur Verfügung. Diese überprüft im ersten Schritt, ob ein Ausdruck NULL ist. Ist das der Fall, wertet sie einen festgelegten Ersatzausdruck aus. Ansonsten wird der ursprüngliche Wert berücksichtigt.

## Die Syntax der Funktion

Die Funktionsweise von SQL ISNULL() wird verständlich, wenn man einen Blick auf die Syntax wirft:

```sql
ISNULL(ausdruck, ersatzwert);
```

Die Funktion überprüft zunächst, ob der Wert des angegebenen Ausdrucks NULL ist. Ist dies der Fall, wird der Ersatzwert ausgegeben. Andernfalls greift SQL ISNULL() auf den ursprünglichen Ausdruck zurück. Wichtig ist dabei zu beachten, dass „ausdruck“ und „ersatzwert“ **denselben Datentyp** haben müssen.

## Funktionsweise von SQL ISNULL()

SQL ISNULL() findet Anwendung innerhalb eines [SQL-Befehls](https://www.ionos.at/digitalguide/server/konfiguration/sql-befehle/) wie `SELECT`. In den folgenden Beispielen sehen Sie zunächst die Ausgabe, wenn der Wert des Ausdrucks NULL ist, und dann den anderen möglichen Fall. Dies ist der erste Code:

```sql
SELECT ISNULL(' ', 'Dies ist der Ersatzwert');
```

Die Ausgabe wäre in diesem Fall diese:

```sql
Dies ist der Ersatzwert
```

Im nächsten Beispiel wird die Funktion wieder angewendet, stellt aber fest, dass der Ausdruck einen Wert hat und gibt daher ebendiesen aus:

```sql
SELECT ISNULL('Dies ist der eigentliche Ausdruck', 'Dies ist der Ersatzwert');
```

Wir erhalten somit diese Ausgabe:

```sql
Dies ist der eigentliche Ausdruck
```

## Beispiel aus der Praxis

Für das nächste Beispiel erstellen wir eine einfache Tabelle namens „Bestellungen“. Diese enthält Spalten für die Kundennummer, den Namen der Kundin oder des Kunden sowie eine Bestellnummer:

<table>
  <thead>
    <tr>
      <th>Kundennummer</th>
      <th>Name</th>
      <th>Bestellnummer</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Schmidt</td>
      <td>00451</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Schulz</td>
      <td></td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Schmidt</td>
      <td>00318</td>
    </tr>
  </tbody>
</table>

Wenn wir nun unsere Tabelle besser strukturieren möchten, können wir SQL ISNULL() nutzen, um den Wert NULL mit dem Platzhalter `00000` zu ersetzen. Der entsprechende Code sieht so aus:

```sql
SELECT Kundennummer,
ISNULL(Bestellnummer, 00000), Bestellnummer
FROM Bestellungen;
```

Führen wir diesen Code aus, erhalten wir die folgende Tabelle:

<table>
  <thead>
    <tr>
      <th>Kundennummer</th>
      <th>Name</th>
      <th>Bestellnummer</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Schmidt</td>
      <td>00451</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Schulz</td>
      <td>00000</td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Schmidt</td>
      <td>00318</td>
    </tr>
  </tbody>
</table>

## Kombination mit Aggregatsfunktionen

SQL ISNULL() funktioniert auch in **Kombination mit Aggregatsfunktionen** wie [SQL AVG()](https://www.ionos.at/digitalguide/server/konfiguration/sql-avg/), [SQL COUNT()](https://www.ionos.at/digitalguide/server/konfiguration/sql-count/) oder `SUM()`. Dieses Zusammenspiel können Sie im folgenden Beispiel kennenlernen. Dafür erweitern wir die Tabelle von oben und fügen eine Spalte für den Bestellwert in Euro hinzu. Die Tabelle sieht nun so aus:

<table>
  <thead>
    <tr>
      <th>Kundennummer</th>
      <th>Name</th>
      <th>Bestellnummer</th>
      <th>Bestellwert</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1326</td>
      <td>Schmidt</td>
      <td>00451</td>
      <td>300</td>
    </tr>
    <tr>
      <td>1288</td>
      <td>Schulz</td>
      <td>00000</td>
      <td>NULL</td>
    </tr>
    <tr>
      <td>1262</td>
      <td>Schmidt</td>
      <td>00318</td>
      <td>100</td>
    </tr>
  </tbody>
</table>

Möchten wir nun den Wert NULL mit 100 ersetzen und den gesamten Bestellwert aller Bestellungen ermitteln, nutzen wir dafür die Funktion `SUM()`. Der Code ist dieser:

```sql
SELECT SUM(ISNULL(Bestellwert, 100)
FROM Bestellungen;
```

Die Ausgabe lautet dadurch:

```sql
500
```

Das System ersetzt den Wert NULL mit 100 und addiert somit 300 + 100 + 100.

## Alternativen für SQL ISNULL()

Es gibt weitere Optionen, die SQL ISNULL() ähneln und zu den sogenannten NULL-Funktionen gezählt werden. Dazu gehören [SQL COALESCE()](https://www.ionos.at/digitalguide/server/konfiguration/sql-coalesce/), [SQL IFNULL()](https://www.ionos.at/digitalguide/server/konfiguration/sql-ifnull/) und [SQL NVL()](https://www.ionos.at/digitalguide/server/konfiguration/sql-nvl/). Diese überprüfen ebenfalls, ob ein Wert NULL ist, und können diesen dann mit einem Ersatzwert austauschen.

Tipp Wählen Sie den passenden Server für Ihre Anforderungen! Mit [SQL-Server-Hosting](https://www.ionos.at/cloud/sql-server-hosting "SQL-Server-Hosting von IONOS") von IONOS haben Sie nicht nur die Wahl zwischen MSSQL, MySQL und MariaDB, sondern profitieren auch von persönlicher Beratung, starken Sicherheitsfeatures und erstklassiger Performance.


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