ISNULL (Transact-SQL)
Zastępuje wartość zastąpienia określonej wartości NULL.
Składnia
ISNULL ( check_expression , replacement_value )
Argumenty
check_expression
Jest wyrażenie mają być sprawdzane NULL.check_expressionmoże być dowolnego typu.replacement_value
Jest zwracana, jeśli wyrażenie check_expression ma wartość NULL.replacement_valuemusi być typu, który jest niejawnie konwertowane typu check_expresssion.
Zwracane typy
Zwraca wartość tego samego typu co check_expression.
Uwagi
Wartość check_expression jest zwracana, jeśli nie jest równa NULL; w przeciwnym razie replacement_value jest zwracane, gdy są niejawnie konwertowane na typ check_expression, jeśli istnieją różne typy.
Przykłady
A.ISNULL przy użyciu oprogramowania AVG
Następujący przykład wyszukuje średniej masy wszystkich produktów.Podstawia wartość 50 dla wszystkich zapisów NULL w Weight kolumna Product tabela.
USE AdventureWorks2008R2;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Oto zestaw wyników.
--------------------------
59.79
(1 row(s) affected)
B.Za pomocą ISNULL
Poniższy przykład powoduje zaznaczenie, opis, stawkę procentową rabatu, ilość minimalną i maksymalną ilość dla wszystkich ofert specjalnych w AdventureWorks2008R2.Jeśli ilości maksymalnej określonej oferty specjalnej ma wartość NULL, MaxQty w zestaw wyników jest 0.00.
USE AdventureWorks2008R2;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Oto zestaw wyników.
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.Badania na wartości NULL w klauzulaWHERE
ISNULL nie należy używać do znajdowania wartości NULL.Użyj zamiast tego jest NULL.Następujący przykład wyszukuje wszystkie produkty, które mają NULL w masie kolumna.Należy zwrócić uwagę, odstęp między IS i NULL.
USE AdventureWorks2008R2;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO