SQL NVL steht für „Null Value“ und dient dazu, NULL-Werte in Da­ten­sät­zen und Da­ten­ban­ken durch aus­sa­ge­kräf­ti­ge­re Werte zu ersetzen. Auf diese Weise straffen Sie Da­ten­ban­ken, ver­bes­sern die Les­bar­keit von Analysen und Berichten und op­ti­mie­ren Ihre Per­for­mance bei Such­ab­fra­gen.

Was ist die SQL NVL-Funktion?

Ad­mi­nis­tra­to­rin­nen und Ad­mi­nis­tra­to­ren, die re­gel­mä­ßig mit Da­ten­ban­ken arbeiten und für Analysen voll­stän­di­ge Da­ten­sät­ze benötigen, kennen das Problem mit NULL-Werten. Fehlende Angaben und Lücken können zu ver­zerr­ten Er­geb­nis­sen, nicht ver­wert­ba­ren Berichten sowie Un­ge­nau­ig­kei­ten führen. Die Lösung des Problems lautet SQL NVL. Die prak­ti­sche „Null-Value Logic“-Funktion hilft Ihnen dabei, leere Spalten und Felder durch be­nut­zer­de­fi­nier­te, sinn­vol­le­re Werte oder Zei­chen­ket­ten zu ersetzen. Auf diese Weise ver­bes­sert sich die Qualität und Ver­wert­bar­keit Ihrer Da­ten­sät­ze und somit auch die Leis­tungs­fä­hig­keit und Per­for­mance von Da­ten­ban­ken.

So funk­tio­niert SQL NVL

Die Funk­ti­ons­wei­se von NVL ist simpel: Sie de­fi­nie­ren mit SQL NVL, mit welchem Wert Sie NULL-Werte in Ihren Ziel­ergeb­nis­sen ersetzen möchten. Die Funktion prüft die aus­ge­wähl­ten Da­ten­sät­ze auf wahre oder falsche Werte und ersetzt gefundene NULL-Werte au­to­ma­tisch durch die ge­wünsch­ten In­for­ma­tio­nen. Bei NULL-Werten handelt es sich in Zeilen und Spalten in der Regel um abwesende Daten. Sie sind daher nicht zu ver­wech­seln mit einem Wert „0“ als nu­me­ri­schem Wert oder mit Leer­stel­len.

Achtung: SQL NVL kommt vorrangig in ORACLE-Da­ten­ban­ken zur Anwendung. In MySQL oder in SQL Server wurde die NVL-Funktion durch die Funktion ISNULL ersetzt. Möchten Sie in Da­ten­ban­ken NULL-Werte ersetzen, verwenden Sie in SQL Server und MS ACCESS statt­des­sen die Funktion ISNULL. In MySQL verwenden Sie wiederum die Funktion IFNULL oder COALESCE. Die Funk­ti­ons­wei­se bleibt hierbei jedoch identisch.

Tipp

Lernen Sie die wich­tigs­ten Grund­la­gen und An­wen­dungs­mög­lich­kei­ten der weit­ver­brei­te­ten Pro­gram­mier- und Da­ten­bank­spra­che SQL kennen. Unsere SQL-Ein­füh­rung mit Bei­spie­len hilft Ihnen beim Einstieg in SQL.

Un­ter­schied von NVL, ISNULL und IFNULL erklärt

Je nach Art der Datenbank kann es schnell zur Ver­wechs­lung zwischen NVL, ISNULL und IFNULL kommen. Die drei Funk­tio­nen sind sich sehr ähnlich, jedoch nicht in allen Da­ten­ban­ken und Da­ten­bank­ma­nage­ment­sys­te­men 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 Funk­tio­nen SQL NVL, ISNULL und IFNULL erfordern jeweils zwei Parameter, die wir hier als „Wert1“ und „Wert2“ be­zeich­nen:

  • 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 Ziel­ergeb­nis­sen ersetzen möchten. Sie können hier sinn­vol­le­re Angaben wie „Keine Angabe“, „0“ oder „Unbekannt“ eintragen, um Lücken und leere Stellen zu be­sei­ti­gen.

Im Folgenden finden Sie die Syntax für jede der drei Funk­tio­nen.

NVL:

NVL(Wert1, Wert2)
sql

ISNULL:

ISNULL(Wert1, Wert2)
sql

IFNULL:

IFNULL(Wert1, Wert2)
sql

Die Funk­tio­nen kommen in der Regel in Ver­bin­dung mit SQL SELECT und FROM zum Einsatz, mit denen Sie die zu prüfenden Da­ten­sät­ze festlegen.

Un­ter­schie­de zwischen SQL NVL, ISNULL und IFNULL

So un­ter­schei­den sich die sehr ähnlichen Funk­tio­nen für den Umgang mit NULL-Werten:

SQL-Funktion Umgang mit NULL-Werten Kom­pa­ti­bi­li­tät
SQL NVL Ersetzt gefundene NULL-Werte mit einem ge­wünsch­ten Wert Oracle, Db2
SQL ISNULL Ersetzt NULL-Werte oder leere Strings um ge­wünsch­ten Wert SQL Server, MySQL, MS ACCESS
SQL IFNULL Ersetzt NULL-Werte um ge­wünsch­ten Wert und in­ter­pre­tiert Leer­zei­chen nicht als NULL-Wert MySQL, Google BigQuery

Für diese An­wen­dungs­mög­lich­kei­ten eignet sich NVL

Das Ersetzen von NULL-Werten bietet sich für ver­schie­dens­te An­wen­dungs­fäl­le an. Dazu zählen unter anderem:

  • Fehlende Kun­den­da­ten oder Lie­fer­adres­sen durch lesbare Werte wie „unbekannt“ ersetzen
  • Un­be­kann­te Kon­to­stän­de oder Trans­ak­tio­nen mit dem nu­me­ri­schen Wert 0 ersetzen
  • Leere Werte zu Pa­ti­en­ten­da­ten, Fi­nanz­da­ten oder Pro­duk­ti­ons­da­ten durch Standard- und Durch­schnitts­wer­te aus­tau­schen
  • Fehlende Be­wer­tun­gen oder nicht vor­han­de­nes Feedback durch „Keine Angabe“ ersetzen
  • Fehlende Bilder oder In­for­ma­tio­nen mit „Bild nicht vorhanden“ oder „Keine In­for­ma­tio­nen verfügbar“ aus­tau­schen
Tipp

Sie wünschen sich ef­fi­zi­en­tes Da­ten­ma­nage­ment mit zu­ver­läs­si­ger Per­for­mance, ska­lier­ba­rer Leis­tungs­fä­hig­keit und Aus­fall­si­cher­heit? Dann nutzen Sie SQL-Server-Hosting von IONOS mit in­di­vi­du­el­len Server- und Hosting-Angeboten und verlassen Sie sich auf deutschen Da­ten­schutz.

vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Prak­ti­sche Beispiele für den SQL NVL-Operator

Um die Anwendung von NVL, ISNULL und IFNULL zu ver­an­schau­li­chen, finden Sie im Folgenden jeweils ein prak­ti­sches Beispiel anhand einer Kun­den­ta­bel­le 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

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

Beispiel für SQL ISNULL

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

Beispiel für SQL IFNULL

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

Al­ter­na­ti­ven zu SQL NVL

Die Funk­tio­nen 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 iden­ti­sche Al­ter­na­ti­ve unter den SQL-Befehlen ,SQL-Ope­ra­to­ren und Funk­tio­nen stellt SQL COALESCE dar. COALESCE steht in nahezu allen Da­ten­bank­an­wen­dun­gen zur Verfügung und er­mög­licht es, gefundene NULL-Werte mit einem Er­satz­wert aus­zu­tau­schen.

Die Syntax ist hierbei ebenfalls identisch:

COALESCE(Wert1, Wert2)
sql
Zum Hauptmenü