Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Nahradí NULL se stanovenou hodnotou náhrady.
Syntaxe
ISNULL ( check_expression , replacement_value )
Arguments
check_expression
Výraz, který je třeba ověřit pro NULL.
check_expression může být jakéhokoliv typu.
replacement_value
Výraz, který se má vrátit, pokud check_expression je .NULL
replacement_value musí být typu, který je implicitně převoditelný na typ check_expression.
Návratové typy
Vrací stejný typ jako check_expression. Pokud je literál NULL uveden jako check_expression, ISNULL vrátí datový typ replacement_value. Pokud je literál NULL uveden jako check_expression a žádný replacement_value není uveden, vrátí ISNULLse int.
Poznámky
Hodnota check_expression se vrátí, pokud není NULL. Jinak se replacement_value vrátí poté, co je implicitně převedeno na typ check_expression, pokud jsou typy odlišné.
replacement_value lze zkrátit, pokud je replacement_value delší než check_expression.
Poznámka:
Použijte COALESCE k vrácení první nenulové hodnoty.
Examples
Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .
A. Používejte ISNULL s AVG
Následující příklad určuje průměr hmotnosti všech součinů. Nahrazuje hodnotu 50 všemi NULL položkami ve Weight sloupci tabulky Product .
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Tady je soubor výsledků.
59.79
B. Použijte ISNULL
Následující příklad vybírá popis, procento slevy, minimální množství a maximální množství pro všechny speciální nabídky v AdventureWorks2025. Pokud je maximální množství pro konkrétní speciální nabídku , NULLzobrazené MaxQty ve výsledné množině je 0.00.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Tady je soubor výsledků.
| Description | DiscountPct | MinQty | Maximální množství |
|---|---|---|---|
No Discount |
0.00 | 0 | 0 |
Volume Discount 11 to 14 |
0.02 | 11 | 14 |
Volume Discount 15 to 24 |
0.05 | 15 | dvacet čtyři |
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 |
Následující příklad používá ISNULL nahrazení NULL hodnoty pro Color, řetězcem None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Tady je částečná sada výsledků.
| ProduktID | Název | Číslo výrobku | Barva |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | None |
| 2 | Bearing Ball |
BA-8327 | None |
| 3 | BB Ball Bearing |
BE-2349 | None |
| 4 | Headset Ball Bearings |
BE-2908 | None |
| 316 | Blade |
BL-2036 | None |
| 317 | LL Crankarm |
CA-5965 | Black |
| 318 | ML Crankarm |
CA-6738 | Black |
| 319 | HL Crankarm |
CA-7457 | Black |
C. Otestujte v NULL klauzuli WHERE
Nepoužívám ISNULL k hledání NULL hodnot. Místo toho použijte IS NULL. Následující příklad najde všechny součiny, které mají ve NULL sloupci váh. Všimněte si prostoru mezi IS a .NULL
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
D. Používejte ISNULL s AVG
Následující příklad najde průměr váhy všech součin v ukázkové tabulce. Nahrazuje hodnotu 50 všemi NULL položkami ve Weight sloupci tabulky Product .
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Tady je soubor výsledků.
52.88
E. Použijte ISNULL
Následující příklad slouží ISNULL k testování NULL hodnot ve sloupci MinPaymentAmount a zobrazení hodnoty 0.00 pro tyto řádky.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Tady je částečná sada výsledků.
| Jméno prodejce | MinimumPayment |
|---|---|
| Cyklistická asociace | 0.0000 |
| Cyklistický obchod | 0.0000 |
| Cykloobchod | 0.0000 |
| Velká cyklistická společnost | 0.0000 |
| Typický cyklistický obchod | 200.0000 |
| Přijatelný prodej a servis | 0.0000 |
F. Použijte IS NULL k testování NULL v klauzuli WHERE
Následující příklad najde všechny součiny, které mají ve sloupci NULL .Weight Všimněte si prostoru mezi IS a .NULL
-- Uses AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;