ISNULL (Transact-SQL)
Ersetzt NULL durch den angegebenen Ersatzwert.
Syntax
ISNULL ( check_expression , replacement_value )
Argumente
check_expression
Der Ausdruck, der auf NULL überprüft wird. check_expression kann einen beliebigen Datentyp aufweisen.replacement_value
Der Ausdruck, der zurückgegeben wird, wenn check_expression den Wert NULL aufweist. replacement_value muss einen Datentyp aufweisen, der implizit in den Datentyp check_expresssion konvertiert werden kann.
Rückgabetypen
Gibt denselben Typ zurück wie check_expression.
Hinweise
Wenn check_expression nicht NULL ist, wird der Wert zurückgegeben. Andernfalls wird replacement_value nach der impliziten Konvertierung in den Datentyp check_expression zurückgegeben, falls die Datentypen unterschiedlich sind.
Beispiele
A. Verwenden von ISNULL mit AVG
Im folgenden Beispiel wird das Durchschnittsgewicht aller Produkte gesucht. Alle NULL-Einträge in der Weight-Spalte der Product-Tabelle werden durch den Wert 50 ersetzt.
USE AdventureWorks;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Dies ist das Resultset.
--------------------------
59.79
(1 row(s) affected)
B. Verwenden von ISNULL
Im folgenden Beispiel werden die Beschreibung, der Prozentsatz des Rabatts, die Mindestmenge und die Höchstmenge für alle Sonderangebote in AdventureWorks ausgewählt. Wenn die Höchstmenge für ein bestimmtes Sonderangebot NULL ist, wird für MaxQty im Resultset 0.00 angezeigt.
USE AdventureWorks;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Dies ist das Resultset.
Description DiscountPct MinQty Max Quantity
--------------- ------------- -------- ---------------
No Discount 0.00 0 0
Volume Discount 0.02 11 14
Volume Discount 0.05 15 4
Volume Discount 0.10 25 0
Volume Discount 0.15 41 0
Volume Discount 0.20 61 0
Mountain-100 Cl 0.35 0 0
Sport Helmet Di 0.10 0 0
Road-650 Overst 0.30 0 0
Mountain Tire S 0.50 0 0
Sport Helmet Di 0.15 0 0
LL Road Frame S 0.35 0 0
Touring-3000 Pr 0.15 0 0
Touring-1000 Pr 0.20 0 0
Half-Price Peda 0.50 0 0
Mountain-500 Si 0.40 0 0
(16 row(s) affected)
C. Überprüfung auf NULL in einer WHERE-Klausel
Suchen Sie NULL-Werte nicht mithilfe von ISNULL. Verwenden Sie stattdessen IS NULL. Im folgenden Beispiel werden alle Produkte, die in der Gewichtungsspalte den Wert NULL haben, gesucht. Beachten Sie das Leerzeichen zwischen IS und NULL.
USE AdventureWorks;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO