Udostępnij za pośrednictwem


ISNULL (Transact-SQL)

Zastępuje wartość zastąpienia określonej wartości NULL.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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