Freigeben über


ISNULL (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse 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 Transact-SQL-Codebeispiele in diesem Artikel verwenden die AdventureWorks2022- oder AdventureWorksDW2022-Beispieldatenbank, die Sie von der Homepage Microsoft SQL Server Samples and Community Projects 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 AdventureWorks2022 ausgewählt. Wenn die maximale Menge für ein bestimmtes Sonderangebot lautet, lautet NULL0.00die MaxQty 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 MinPaymentAmount getestet NULL 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
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 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;