ISNULL (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Platform System (PDW) SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
Ersetzt NULL durch den angegebenen Ersatzwert.
Transact-SQL-Syntaxkonventionen
Syntax
ISNULL ( check_expression , replacement_value )
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
Argumente
check_expression
Dies ist der Ausdruck, der auf NULL überprüft werden soll. check_expression kann ein beliebiger Typ sein.
replacement_value
Der Ausdruck, der zurückgegeben werden soll, wenn Prüfausdruck NULL ist. replacement_value muss einen Typ aufweisen, der implizit in den Typ von check_expression konvertiert werden kann.
Rückgabetypen
Gibt denselben Typ wie der Ausdruck check_expression zurück. Wenn ein literaler NULL-Wert als check_expression bereitgestellt wird, wird der Datentyp des Ersatzwerts replacement_value zurückgegeben. Wenn ein literaler NULL-Wert als check_expression bereitgestellt wird und kein replacement_value bereitgestellt wird, wird int zurückgegeben.
Bemerkungen
Der Wert von check_expression wird zurückgegeben, wenn er nicht NULL ist, andernfalls wird replacement_value zurückgegeben, nachdem er implizit in den Typ von check_expression konvertiert wurde, falls die Typen unterschiedlich sind. replacement_value kann gekürzt werden, wenn replacement_value länger als check_expression ist.
Hinweis
Verwenden Sie COALESCE (Transact-SQL), um den ersten Wert zurückzugeben, der nicht NULL ist.
Beispiele
A. Verwenden von ISNULL mit AVG
Im folgenden Beispiel wird das Durchschnittsgewicht aller Produkte gesucht. Alle NULL-Einträge in der 50
-Spalte der Weight
-Tabelle werden durch den Wert Product
ersetzt.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Hier 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 AdventureWorks2022
ausgewählt. Wenn die Höchstmenge für ein bestimmtes Sonderangebot NULL ist, wird für MaxQty
im Resultset 0.00
angezeigt.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Hier ist das Resultset.
BESCHREIBUNG | DiscountPct | MinQty | Höchstmenge |
---|---|---|---|
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. Testen auf NULL in einer WHERE-Klausel
ISNULL sollte nicht für die Suche nach NULL-Werten verwendet werden. Verwenden Sie stattdessen IS NULL. Im folgenden Beispiel werden alle Produkte gesucht, die in der Weight-Spalte NULL
enthalten. Beachten Sie den Leerraum zwischen IS
und NULL
.
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
D: Verwenden von ISNULL mit AVG
Im folgenden Beispiel wird das Durchschnittsgewicht aller Produkte in der selben Tabelle gesucht. Alle NULL-Einträge in der 50
-Spalte der Weight
-Tabelle werden durch den Wert Product
ersetzt.
-- Uses AdventureWorks
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Hier ist das Resultset.
--------------------------
52.88
E. Verwenden von ISNULL
Im folgenden Beispiel wird ISNULL verwendet, um auf NULL-Werte in der Spalte MinPaymentAmount
zu prüfen, und um den Wert 0.00
für diese Zeilen anzuzeigen.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Dies ist ein Auszug aus dem Resultset.
ResellerName | MinimumPayment |
---|---|
A Bicycle Association | 0,0000 |
A Bike Store | 0,0000 |
A Cycle Shop | 0,0000 |
A Great Bicycle Company | 0,0000 |
A Typical Bike Shop | 200,0000 |
Acceptable Sales & Service | 0,0000 |
F. Verwenden von IS NULL für die Überprüfung auf NULL in einer WHERE-Klausel
Im folgenden Beispiel werden alle Produkte gesucht, die in der NULL
-Spalte Weight
enthalten. Beachten Sie den Leerraum zwischen IS
und NULL
.
-- Uses AdventureWorks
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;
Weitere Informationen
Ausdrücke (Transact-SQL)
IS NULL (Transact-SQL)
Systemfunktionen (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für