ISNULL (Transact-SQL)ISNULL (Transact-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance JaAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics JaParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Ersetzt NULL durch den angegebenen Ersatzwert.Replaces NULL with the specified replacement value.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

ISNULL ( check_expression , replacement_value )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumenteArguments

check_expressioncheck_expression
Dies ist der Ausdruck, der auf NULL überprüft werden soll.Is the expression to be checked for NULL. check_expression kann ein beliebiger Typ sein.check_expression can be of any type.

replacement_valuereplacement_value
Der Ausdruck, der zurückgegeben werden soll, wenn Prüfausdruck NULL ist.Is the expression to be returned if check_expression is NULL. replacement_value muss einen Typ aufweisen, der implizit in den Typ von check_expression konvertiert werden kann.replacement_value must be of a type that is implicitly convertible to the type of check_expression.

RückgabetypenReturn Types

Gibt denselben Typ wie der Ausdruck check_expression zurück.Returns the same type as check_expression. Wenn ein literaler NULL-Wert als check_expression bereitgestellt wird, wird der Datentyp des Ersatzwerts replacement_value zurückgegeben.If a literal NULL is provided as check_expression, returns the datatype of the replacement_value. Wenn ein literaler NULL-Wert als check_expression bereitgestellt wird und kein replacement_value bereitgestellt wird, wird int zurückgegeben.If a literal NULL is provided as check_expression and no replacement_value is provided, returns an int.

BemerkungenRemarks

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.The value of check_expression is returned if it is not NULL; otherwise, replacement_value is returned after it is implicitly converted to the type of check_expression, if the types are different. replacement_value kann gekürzt werden, wenn replacement_value länger als check_expression ist.replacement_value can be truncated if replacement_value is longer than check_expression.

Hinweis

Verwenden Sie COALESCE (Transact-SQL), um den ersten Wert zurückzugeben, der nicht NULL ist.Use COALESCE (Transact-SQL) to return the first non-null value.

BeispieleExamples

A.A. Verwenden von ISNULL mit AVGUsing ISNULL with AVG

Im folgenden Beispiel wird das Durchschnittsgewicht aller Produkte gesucht.The following example finds the average of the weight of all products. Alle NULL-Einträge in der 50-Spalte der Weight-Tabelle werden durch den Wert Product ersetzt.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

USE AdventureWorks2012;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

Hier ist das Resultset.Here is the result set.

-------------------------- 
59.79  
 
(1 row(s) affected)

B.B. Verwenden von ISNULLUsing ISNULL

Im folgenden Beispiel werden die Beschreibung, der Prozentsatz des Rabatts, die Mindestmenge und die Höchstmenge für alle Sonderangebote in AdventureWorks2012 ausgewählt.The following example selects the description, discount percentage, minimum quantity, and maximum quantity for all special offers in AdventureWorks2012. Wenn die Höchstmenge für ein bestimmtes Sonderangebot NULL ist, wird für MaxQty im Resultset 0.00 angezeigt.If the maximum quantity for a particular special offer is NULL, the MaxQty shown in the result set is 0.00.

USE AdventureWorks2012;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

Hier ist das Resultset.Here is the result set.

BESCHREIBUNGDescription DiscountPctDiscountPct MinQtyMinQty HöchstmengeMax Quantity
No DiscountNo Discount 0.000.00 00 00
Volume DiscountVolume Discount 0,020.02 1111 1414
Volume DiscountVolume Discount 0.050.05 1515 44
Volume DiscountVolume Discount 0,100.10 2525 00
Volume DiscountVolume Discount 0,150.15 4141 00
Volume DiscountVolume Discount 0,200.20 6161 00
Mountain-100 ClMountain-100 Cl 0,350.35 00 00
Sport Helmet DiSport Helmet Di 0,100.10 00 00
Road-650 OverstRoad-650 Overst 0,300.30 00 00
Mountain Tire SMountain Tire S 0,500.50 00 00
Sport Helmet DiSport Helmet Di 0,150.15 00 00
LL Road Frame SLL Road Frame S 0,350.35 00 00
Touring-3000 PrTouring-3000 Pr 0,150.15 00 00
Touring-1000 PrTouring-1000 Pr 0,200.20 00 00
Half-Price PedaHalf-Price Peda 0,500.50 00 00
Mountain-500 SiMountain-500 Si 0,400.40 00 00

(16 row(s) affected)

C.C. Testen auf NULL in einer WHERE-KlauselTesting for NULL in a WHERE clause

ISNULL sollte nicht für die Suche nach NULL-Werten verwendet werden.Do not use ISNULL to find NULL values. Verwenden Sie stattdessen IS NULL.Use IS NULL instead. Im folgenden Beispiel werden alle Produkte gesucht, die in der Weight-Spalte NULL enthalten.The following example finds all products that have NULL in the weight column. Beachten Sie den Leerraum zwischen IS und NULL.Note the space between IS and NULL.

USE AdventureWorks2012;  
GO  
SELECT Name, Weight  
FROM Production.Product  
WHERE Weight IS NULL;  
GO  

Beispiele: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) und Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse Analytics (SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) and Parallel Data WarehouseParallel Data Warehouse

D:D. Verwenden von ISNULL mit AVGUsing ISNULL with AVG

Im folgenden Beispiel wird das Durchschnittsgewicht aller Produkte in der selben Tabelle gesucht.The following example finds the average of the weight of all products in a sample table. Alle NULL-Einträge in der 50-Spalte der Weight-Tabelle werden durch den Wert Product ersetzt.It substitutes the value 50 for all NULL entries in the Weight column of the Product table.

-- Uses AdventureWorks  
  
SELECT AVG(ISNULL(Weight, 50))  
FROM dbo.DimProduct;  

Hier ist das Resultset.Here is the result set.

--------------------------   
52.88   

E.E. Verwenden von ISNULLUsing 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.The following example uses ISNULL to test for NULL values in the column MinPaymentAmount and display the value 0.00 for those rows.

-- Uses AdventureWorks  
  
SELECT ResellerName,   
       ISNULL(MinPaymentAmount,0) AS MinimumPayment  
FROM dbo.DimReseller  
ORDER BY ResellerName;  
  

Dies ist ein Auszug aus dem Resultset.Here is a partial result set.

ResellerNameResellerName MinimumPaymentMinimumPayment
A Bicycle AssociationA Bicycle Association 0,00000.0000
A Bike StoreA Bike Store 0,00000.0000
A Cycle ShopA Cycle Shop 0,00000.0000
A Great Bicycle CompanyA Great Bicycle Company 0,00000.0000
A Typical Bike ShopA Typical Bike Shop 200,0000200.0000
Acceptable Sales & ServiceAcceptable Sales & Service 0,00000.0000

F.F. Verwenden von IS NULL für die Überprüfung auf NULL in einer WHERE-KlauselUsing IS NULL to test for NULL in a WHERE clause

Im folgenden Beispiel werden alle Produkte gesucht, die in der NULL-Spalte Weight enthalten.The following example finds all products that have NULL in the Weight column. Beachten Sie den Leerraum zwischen IS und NULL.Note the space between IS and NULL.

-- Uses AdventureWorks  
  
SELECT EnglishProductName, Weight  
FROM dbo.DimProduct  
WHERE Weight IS NULL;  

Weitere InformationenSee Also

Ausdrücke (Transact-SQL) Expressions (Transact-SQL)
IS NULL (Transact-SQL) IS NULL (Transact-SQL)
Systemfunktionen (Transact-SQL) System Functions (Transact-SQL)
WHERE (Transact-SQL) WHERE (Transact-SQL)
COALESCE (Transact-SQL)COALESCE (Transact-SQL)