Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Ersetzt den NULL angegebenen Ersetzungswert.
Transact-SQL-Syntaxkonventionen
Syntax
ISNULL ( check_expression , replacement_value )
Argumente
check_expression
Der Ausdruck , auf NULLden überprüft werden soll.
check_expression kann ein beliebiger Typ sein.
replacement_value
Der Ausdruck, der zurückgegeben werden soll, wenn check_expression ist NULL.
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 Literal NULL als check_expression bereitgestellt wird, ISNULL wird der Datentyp des replacement_value zurückgegeben. Wenn ein Literal NULL als check_expression angegeben wird und keine replacement_value angegeben wird, ISNULL wird ein Int zurückgegeben.
Hinweise
Der Wert von check_expression wird zurückgegeben, wenn dies nicht NULLder Wert ist. Andernfalls wird replacement_value zurückgegeben, nachdem sie implizit in den Typ der check_expression konvertiert wurde, wenn die Typen unterschiedlich sind.
replacement_value kann gekürzt werden, wenn replacement_value länger als check_expression ist.
Hinweis
Verwenden Sie COALESCE , um den ersten Nicht-Null-Wert zurückzugeben.
Beispiele
Die Codebeispiele in diesem Artikel verwenden die AdventureWorks2025- oder AdventureWorksDW2025 Beispieldatenbank, die Sie von der Microsoft SQL Server Samples and Community Projects Homepage herunterladen können.
A. Verwenden von ISNULL mit AVG
Im folgenden Beispiel wird das Durchschnittsgewicht aller Produkte gesucht. Er ersetzt den Wert 50 für alle NULL Einträge in der Weight Spalte der Product Tabelle.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Hier sehen Sie das Ergebnis.
59.79
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 AdventureWorks2025 ausgewählt. Wenn die maximale Menge für ein bestimmtes Sonderangebot lautet, lautet NULLMaxQtydie 0.00 im Resultset angezeigte Menge.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Hier sehen Sie das Ergebnis.
| Beschreibung | DiscountPct | MinQty | Höchstmenge |
|---|---|---|---|
No Discount |
0,00 | 0 | 0 |
Volume Discount 11 to 14 |
0,02 | 11 | 14 |
Volume Discount 15 to 24 |
0.05 | 15 | 24 |
Volume Discount 25 to 40 |
0,10 | 25 | 40 |
Volume Discount 41 to 60 |
0,15 | 41 | 60 |
Volume Discount over 60 |
0,20 | 61 | 0 |
Mountain-100 Clearance Sale |
0,35 | 0 | 0 |
Sport Helmet Discount-2002 |
0,10 | 0 | 0 |
Road-650 Overstock |
0,30 | 0 | 0 |
Mountain Tire Sale |
0,50 | 0 | 0 |
Sport Helmet Discount-2003 |
0,15 | 0 | 0 |
LL Road Frame Sale |
0,35 | 0 | 0 |
Touring-3000 Promotion |
0,15 | 0 | 0 |
Touring-1000 Promotion |
0,20 | 0 | 0 |
Half-Price Pedal Sale |
0,50 | 0 | 0 |
Mountain-500 Silver Clearance Sale |
0,40 | 0 | 0 |
Im folgenden Beispiel wird ISNULL ein NULL Wert für Color, durch die Zeichenfolge Noneersetzt.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Dies ist ein Auszug aus dem Resultset.
| ProductID | Name | ProductNumber | Color |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | Keine |
| 2 | Bearing Ball |
BA-8327 | Keine |
| 3 | BB Ball Bearing |
BE-2349 | Keine |
| 4 | Headset Ball Bearings |
BE-2908 | Keine |
| 316 | Blade |
BL-2036 | Keine |
| 317 | LL Crankarm |
CA-5965 | Schwarz |
| 318 | ML Crankarm |
CA-6738 | Schwarz |
| 319 | HL Crankarm |
CA-7457 | Schwarz |
C. Testen für NULL eine WHERE-Klausel
Verwenden ISNULL Sie diese Option nicht, um Werte zu finden NULL . 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. Er ersetzt den Wert 50 für alle NULL Einträge in der Weight Spalte der Product Tabelle.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Hier sehen Sie das Ergebnis.
52.88
E. Verwenden von ISNULL
Im folgenden Beispiel werden ISNULL Werte in der Spalte NULL getestet MinPaymentAmount und der Wert 0.00 für diese Zeilen angezeigt.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Dies ist ein Auszug aus dem Resultset.
| ResellerName | MinimumPayment |
|---|---|
| Ein Fahrradverband | 0,0000 |
| Fahrradgeschäft | 0,0000 |
| Ein Fahrradladen | 0,0000 |
| Eine großartige Fahrradfirma | 0,0000 |
| Ein typischer Fahrradladen | 200,0000 |
| Akzeptabler Verkauf & Service | 0,0000 |
F. Verwenden von IS NULL zum Testen von 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 AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;