(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ISNULL (Transact-SQL)

Ersetzt NULL durch den angegebenen Ersatzwert.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

ISNULL ( check_expression , replacement_value )

check_expression

Der Ausdruck, der auf NULL überprüft werden soll. check_expression kann einen beliebigen Typ aufweisen.

replacement_value

Der Ausdruck, der zurückgegeben werden soll, wenn check_expression NULL ist. Der Datentyp von replacement_value muss implizit in den Typ von check_expresssion konvertiert werden können.

Gibt denselben Typ zurück wie check_expression. Bei Angabe eines literalen NULL-Werts als check_expression wird der Datentyp des replacement_value zurückgegeben. Wenn ein literaler NULL-Wert als check_expression und kein replacement_value angegeben wird, wird eine int zurückgegeben.

Wenn check_expression nicht NULL ist, wird der Wert zurückgegeben. Andernfalls wird replacement_value nach der impliziten Konvertierung in den Typ von check_expression zurückgegeben, falls die Typen unterschiedlich sind. replacement_value kann abgeschnitten werden, wenn replacement_value länger als check_expression ist.

Hinweis Hinweis

Verwenden Sie COALESCE (Transact-SQL), um den ersten Wert zurückzugeben, der ungleich NULL ist.

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 AdventureWorks2012;
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 AdventureWorks2012 ausgewählt. Wenn die Höchstmenge für ein bestimmtes Sonderangebot NULL ist, wird für MaxQty im Resultset 0.00 angezeigt.

USE AdventureWorks2012;
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.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 AdventureWorks2012;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft