Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zastępuje NULL się określoną wartością odtworzenia.
Transact-SQL konwencje składni
Składnia
ISNULL ( check_expression , replacement_value )
Arguments
check_expression
Wyrażenie, które należy sprawdzić dla NULL.
check_expression mogą być dowolnego rodzaju.
replacement_value
Wyrażenie, które należy zwrócić, jeśli check_expression jest .NULL
replacement_value musi być typu domyślnie wymienialnego na typ check_expression.
Typy zwracane
Zwraca ten sam typ co check_expression. Jeśli literal NULL jest podany jako check_expression, ISNULL zwraca typ danych replacement_value. Jeśli literal NULL jest podany jako check_expression i nie ma replacement_value , ISNULL zwraca int.
Uwagi
Wartość check_expression jest zwracana, jeśli nie NULLjest . W przeciwnym razie replacement_value zwraca się po domyślnej konwersji do typu check_expression, jeśli typy są różne.
replacement_value można skrócić, jeśli replacement_value jest dłuższy niż check_expression.
Uwaga / Notatka
Użyj COALESCE, aby zwrócić pierwszą wartość niezerową.
Przykłady
Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.
A. Używaj ISNULL z AVG
Poniższy przykład pokazuje średnią wagi wszystkich produktów. Podstawia wartość 50 wszystkich NULL wpisów w kolumnie Weight tabeli Product .
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Oto zestaw wyników.
59.79
B. Użyj ISNULL
Poniższy przykład wybiera opis, procent rabatu, minimalną ilość i maksymalną ilość dla wszystkich specjalnych ofert w AdventureWorks2025. Jeśli maksymalna ilość dla konkretnej oferty specjalnej wynosi NULL, pokazana MaxQty w zbiorze wyników to 0.00.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Oto zestaw wyników.
| Description | DiscountPct | MinQty | Maksymalna ilość |
|---|---|---|---|
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 |
Poniższy przykład wykorzystuje zastąpienie ISNULLNULL wartości dla Color, na ciąg None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Oto zestaw wyników częściowych.
| IdentyfikatorProduktu | Name | Numer produktu | Kolor |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | Żaden |
| 2 | Bearing Ball |
BA-8327 | Żaden |
| 3 | BB Ball Bearing |
BE-2349 | Żaden |
| 4 | Headset Ball Bearings |
BE-2908 | Żaden |
| 316 | Blade |
BL-2036 | Żaden |
| 317 | LL Crankarm |
CA-5965 | Czarny |
| 318 | ML Crankarm |
CA-6738 | Czarny |
| 319 | HL Crankarm |
CA-7457 | Czarny |
C. Test dla w NULL klauzuli WHERE
Nie używaj do ISNULL wyszukiwania NULL wartości. Użyj IS NULL zamiast tego. Poniższy przykład pokazuje wszystkie iloczyny, które mają w NULL kolumnie wag. Zwróć uwagę na przestrzeń między IS a .NULL
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)
D. Używaj ISNULL z AVG
Poniższy przykład pokazuje średnią wagi wszystkich produktów w tabeli próbkowej. Podstawia wartość 50 wszystkich NULL wpisów w kolumnie Weight tabeli Product .
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Oto zestaw wyników.
52.88
E. Użyj ISNULL
Poniższy przykład wykorzystuje się ISNULL do testowania NULL wartości w kolumnie MinPaymentAmount i wyświetlania wartości 0.00 dla tych wierszy.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Oto zestaw wyników częściowych.
| ResellerName (Nazwa odsprzedawcy) | Minimalna Płatność |
|---|---|
| Stowarzyszenie rowerowe | 0.0000 |
| Sklep rowerowy | 0.0000 |
| Sklep rowerowy | 0.0000 |
| Wielka firma rowerowa | 0.0000 |
| Typowy sklep rowerowy | 200.0000 |
| Akceptowalna sprzedaż i obsługa | 0.0000 |
F. Użyj IS NULL do testowania NULL w klauzuli WHERE
Poniższy przykład pokazuje wszystkie iloczyny, które mają w NULL kolumnie Weight . Zwróć uwagę na przestrzeń między IS a .NULL
-- Uses AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;