SQL ISNULL() wird genutzt, um zu über­prü­fen, ob ein Ausdruck den Wert NULL hat. Ist dies der Fall, ersetzt die Funktion NULL mit einem Er­satz­wert desselben Datentyps.

Was ist SQL ISNULL()?

In der Struc­tu­red Query Language können Sie Tabellen erstellen und diese mit Werten füllen. Wenn Sie darauf ver­zich­ten, einem Feld innerhalb der Tabelle einen Wert zu­zu­wei­sen, bleibt dieses Feld leer. Es erhält dadurch den Wert NULL, der anzeigt, dass kein tat­säch­li­cher Wert vorliegt. An­ge­nom­men, Sie wollen nun dafür sorgen, dass statt NULL ein Er­satz­wert be­rück­sich­tigt 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 fest­ge­leg­ten Er­satz­aus­druck aus. Ansonsten wird der ur­sprüng­li­che Wert be­rück­sich­tigt.

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

Die Syntax der Funktion

Die Funk­ti­ons­wei­se von SQL ISNULL() wird ver­ständ­lich, wenn man einen Blick auf die Syntax wirft:

ISNULL(ausdruck, ersatzwert);
sql

Die Funktion überprüft zunächst, ob der Wert des an­ge­ge­be­nen Ausdrucks NULL ist. Ist dies der Fall, wird der Er­satz­wert aus­ge­ge­ben. An­dern­falls greift SQL ISNULL() auf den ur­sprüng­li­chen Ausdruck zurück. Wichtig ist dabei zu beachten, dass „ausdruck“ und „er­satz­wert“ denselben Datentyp haben müssen.

Funk­ti­ons­wei­se von SQL ISNULL()

SQL ISNULL() findet Anwendung innerhalb eines SQL-Befehls wie SELECT. In den folgenden Bei­spie­len 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:

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

Die Ausgabe wäre in diesem Fall diese:

Dies ist der Ersatzwert
sql

Im nächsten Beispiel wird die Funktion wieder an­ge­wen­det, stellt aber fest, dass der Ausdruck einen Wert hat und gibt daher eben­die­sen aus:

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

Wir erhalten somit diese Ausgabe:

Dies ist der eigentliche Ausdruck
sql

Beispiel aus der Praxis

Für das nächste Beispiel erstellen wir eine einfache Tabelle namens „Be­stel­lun­gen“. Diese enthält Spalten für die Kun­den­num­mer, den Namen der Kundin oder des Kunden sowie eine Be­stell­num­mer:

Kun­den­num­mer Name Be­stell­num­mer
1326 Schmidt 00451
1288 Schulz
1262 Schmidt 00318

Wenn wir nun unsere Tabelle besser struk­tu­rie­ren möchten, können wir SQL ISNULL() nutzen, um den Wert NULL mit dem Platz­hal­ter 00000 zu ersetzen. Der ent­spre­chen­de Code sieht so aus:

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

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

Kun­den­num­mer Name Be­stell­num­mer
1326 Schmidt 00451
1288 Schulz 00000
1262 Schmidt 00318

Kom­bi­na­ti­on mit Ag­gre­gats­funk­tio­nen

SQL ISNULL() funk­tio­niert auch in Kom­bi­na­ti­on mit Ag­gre­gats­funk­tio­nen wie SQL AVG(), SQL COUNT() oder SUM(). Dieses Zu­sam­men­spiel können Sie im folgenden Beispiel ken­nen­ler­nen. Dafür erweitern wir die Tabelle von oben und fügen eine Spalte für den Be­stell­wert in Euro hinzu. Die Tabelle sieht nun so aus:

Kun­den­num­mer Name Be­stell­num­mer Be­stell­wert
1326 Schmidt 00451 300
1288 Schulz 00000 NULL
1262 Schmidt 00318 100

Möchten wir nun den Wert NULL mit 100 ersetzen und den gesamten Be­stell­wert aller Be­stel­lun­gen ermitteln, nutzen wir dafür die Funktion SUM(). Der Code ist dieser:

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

Die Ausgabe lautet dadurch:

500
sql

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

Al­ter­na­ti­ven für SQL ISNULL()

Es gibt weitere Optionen, die SQL ISNULL() ähneln und zu den so­ge­nann­ten NULL-Funk­tio­nen gezählt werden. Dazu gehören SQL COALESCE(), SQL IFNULL() und SQL NVL(). Diese über­prü­fen ebenfalls, ob ein Wert NULL ist, und können diesen dann mit einem Er­satz­wert aus­tau­schen.

Tipp

Wählen Sie den passenden Server für Ihre An­for­de­run­gen! Mit SQL-Server-Hosting von IONOS haben Sie nicht nur die Wahl zwischen MSSQL, MySQL und MariaDB, sondern pro­fi­tie­ren auch von per­sön­li­cher Beratung, starken Si­cher­heits­fea­tures und erst­klas­si­ger Per­for­mance.

Zum Hauptmenü