# Die SQL NVL Funktion – So ersetzen Sie NULL-Werte

SQL `NVL` steht für „Null Value“ und dient dazu, NULL-Werte in Datensätzen und Datenbanken **durch aussagekräftigere Werte zu ersetzen**. Auf diese Weise straffen Sie Datenbanken, verbessern die Lesbarkeit von Analysen und Berichten und optimieren Ihre Performance bei Suchabfragen.

## Was ist die SQL `NVL`-Funktion?

Administratorinnen und Administratoren, die regelmäßig mit Datenbanken arbeiten und für Analysen vollständige Datensätze benötigen, kennen das Problem mit NULL-Werten. Fehlende Angaben und Lücken können zu verzerrten Ergebnissen, nicht verwertbaren Berichten sowie Ungenauigkeiten führen. Die Lösung des Problems lautet SQL `NVL`. Die praktische „Null-Value Logic“-Funktion hilft Ihnen dabei, leere Spalten und Felder **durch benutzerdefinierte, sinnvollere Werte oder Zeichenketten zu ersetzen**. Auf diese Weise verbessert sich die Qualität und Verwertbarkeit Ihrer Datensätze und somit auch die Leistungsfähigkeit und Performance von Datenbanken.

## So funktioniert SQL `NVL`

Die Funktionsweise von `NVL` ist simpel: Sie definieren mit SQL `NVL`, mit welchem Wert Sie NULL-Werte in Ihren Zielergebnissen ersetzen möchten. Die Funktion prüft die ausgewählten Datensätze auf wahre oder falsche Werte und **ersetzt gefundene NULL-Werte** automatisch durch die gewünschten Informationen. Bei NULL-Werten handelt es sich in Zeilen und Spalten in der Regel um abwesende Daten. Sie sind daher nicht zu verwechseln mit einem Wert „0“ als numerischem Wert oder mit Leerstellen.

**Achtung**: SQL `NVL` kommt **vorrangig in ORACLE-Datenbanken** zur Anwendung. In MySQL oder in SQL Server wurde die `NVL`-Funktion durch die Funktion `ISNULL` ersetzt. Möchten Sie in [Datenbanken](https://www.ionos.de/digitalguide/hosting/hosting-technik/datenbanken/) NULL-Werte ersetzen, verwenden Sie in SQL Server und MS ACCESS stattdessen die Funktion `ISNULL`. In MySQL verwenden Sie wiederum die Funktion `IFNULL` oder `COALESCE`. Die Funktionsweise bleibt hierbei jedoch identisch.

Tipp Lernen Sie die wichtigsten Grundlagen und Anwendungsmöglichkeiten der weitverbreiteten Programmier- und Datenbanksprache [SQL](https://www.ionos.de/digitalguide/server/knowhow/was-ist-sql/) kennen. Unsere [SQL-Einführung mit Beispielen](https://www.ionos.de/digitalguide/server/konfiguration/sql-einfuehrung-mit-beispielen/) hilft Ihnen beim Einstieg in SQL.

## Unterschied von `NVL`, `ISNULL` und `IFNULL` erklärt

Je nach Art der Datenbank kann es schnell zur Verwechslung zwischen `NVL`, `ISNULL` und `IFNULL` kommen. Die drei Funktionen sind sich sehr ähnlich, jedoch **nicht in allen Datenbanken und [Datenbankmanagementsystemen](https://www.ionos.de/digitalguide/hosting/hosting-technik/datenbankmanagementsystem-dbms-erklaert/) verfügbar**. Unsere Übersicht hilft Ihnen dabei, die richtige Funktion zu wählen, wenn Sie NULL-Werte ersetzen möchten.

### Syntax und Parameter erklärt

Die Funktionen SQL `NVL`, `ISNULL` und `IFNULL` **erfordern jeweils zwei Parameter**, die wir hier als „Wert1“ und „Wert2“ bezeichnen:

- **Wert1**: Legt den Datensatz oder die Spalte fest, in der Sie NULL-Werte finden und ersetzen möchten.
- **Wert2**: Steht für den Wert, um den Sie NULL-Werte in Ihren Zielergebnissen ersetzen möchten. Sie können hier sinnvollere Angaben wie „Keine Angabe“, „0“ oder „Unbekannt“ eintragen, um Lücken und leere Stellen zu beseitigen.

Im Folgenden finden Sie die Syntax für jede der drei Funktionen.

**NVL**:

```sql
NVL(Wert1, Wert2)
```

**ISNULL**:

```sql
ISNULL(Wert1, Wert2)
```

**IFNULL**:

```sql
IFNULL(Wert1, Wert2)
```

Die Funktionen kommen in der Regel in Verbindung mit [SQL SELECT](https://www.ionos.de/digitalguide/server/konfiguration/sql-select/) und `FROM` zum Einsatz, mit denen Sie die zu prüfenden Datensätze festlegen.

### Unterschiede zwischen SQL NVL, ISNULL und IFNULL

So unterscheiden sich die sehr ähnlichen Funktionen für den Umgang mit NULL-Werten:

<table>
  <thead>
    <tr>
      <th>SQL-Funktion</th>
      <th>Umgang mit NULL-Werten</th>
      <th>Kompatibilität</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>SQL `NVL`</td>
      <td>Ersetzt gefundene NULL-Werte mit einem gewünschten Wert</td>
      <td>Oracle, Db2</td>
    </tr>
    <tr>
      <td>SQL `ISNULL`</td>
      <td>Ersetzt NULL-Werte oder leere Strings um gewünschten Wert</td>
      <td>SQL Server, MySQL, MS ACCESS</td>
    </tr>
    <tr>
      <td>SQL `IFNULL`</td>
      <td>Ersetzt NULL-Werte um gewünschten Wert und interpretiert Leerzeichen nicht als NULL-Wert</td>
      <td>MySQL, Google BigQuery</td>
    </tr>
  </tbody>
</table>

## Für diese Anwendungsmöglichkeiten eignet sich `NVL`

Das Ersetzen von NULL-Werten bietet sich für verschiedenste Anwendungsfälle an. Dazu zählen unter anderem:

- Fehlende Kundendaten oder Lieferadressen durch lesbare Werte wie „unbekannt“ ersetzen
- Unbekannte Kontostände oder Transaktionen mit dem numerischen Wert 0 ersetzen
- Leere Werte zu Patientendaten, Finanzdaten oder Produktionsdaten durch Standard- und Durchschnittswerte austauschen
- Fehlende Bewertungen oder nicht vorhandenes Feedback durch „Keine Angabe“ ersetzen
- Fehlende Bilder oder Informationen mit „Bild nicht vorhanden“ oder „Keine Informationen verfügbar“ austauschen

Tipp Sie wünschen sich effizientes Datenmanagement mit zuverlässiger Performance, skalierbarer Leistungsfähigkeit und Ausfallsicherheit? Dann nutzen Sie [SQL-Server-Hosting](https://www.ionos.de/cloud/sql-server-hosting "SQL-Server-Hosting von IONOS") von IONOS mit individuellen Server- und Hosting-Angeboten und verlassen Sie sich auf deutschen Datenschutz.

## Praktische Beispiele für den SQL `NVL`-Operator

Um die Anwendung von `NVL`, `ISNULL` und `IFNULL` zu veranschaulichen, finden Sie im Folgenden jeweils ein praktisches Beispiel anhand einer Kundentabelle mit Spalten zu Adresse, Alter und Kunden-ID. Hierbei möchten wir mögliche NULL-Werte unter „Adresse“ durch den Wert „Keine Angabe“ ersetzen.

### Beispiel für SQL `NVL`

```sql
SELECT  Adresse, Alter, KundenID, NVL(Adresse,  'Keine Angabe')
FROM  kunden
```

### Beispiel für SQL `ISNULL`

```sql
SELECT  Adresse, Alter, KundenID, ISNULL(Adresse,  'Keine Angabe')
FROM  kunden
```

### Beispiel für SQL `IFNULL`

```sql
SELECT  Adresse, Alter, KundenID, IFNULL(Adresse,  'Keine Angabe')
FROM  kunden
```

## Alternativen zu SQL `NVL`

Die Funktionen `NVL`, `ISNULL` und `IFNULL` sind nahezu identisch. Hierbei müssen Sie jedoch darauf achten, ob die jeweilige Funktion in Ihrer Datenbank zur Verfügung steht. Eine weitere, fast identische Alternative unter den [SQL-Befehlen](https://www.ionos.de/digitalguide/server/konfiguration/sql-befehle/) ,[SQL-Operatoren](https://www.ionos.de/digitalguide/server/konfiguration/sql-operatoren/) und Funktionen stellt [SQL COALESCE](https://www.ionos.de/digitalguide/server/konfiguration/sql-coalesce/) dar. `COALESCE` steht **in nahezu allen Datenbankanwendungen** zur Verfügung und ermöglicht es, gefundene NULL-Werte mit einem Ersatzwert auszutauschen.

Die Syntax ist hierbei ebenfalls identisch:

```sql
COALESCE(Wert1, Wert2)
```


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