Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Byter ut NULL mot det angivna ersättningsvärdet.
Transact-SQL syntaxkonventioner
Syntax
ISNULL ( check_expression , replacement_value )
Arguments
check_expression
Uttrycket som ska kontrolleras för NULL.
check_expression kan vara av vilken typ som helst.
replacement_value
Uttrycket som ska returneras om check_expression är .NULL
replacement_value måste vara av en typ som implicit kan konverteras till typen check_expression.
Returtyper
Returnerar samma typ som check_expression. Om en literal NULL anges som check_expression, ISNULL returnerar datatypen för replacement_value. Om en bokstavlig NULL anges som check_expression och ingen replacement_value ges, ISNULL returnerar en int.
Anmärkningar
Värdet av check_expression returneras om det inte NULLär . Annars returneras replacement_value efter att den implicit konverterats till typen check_expression, om typerna är olika.
replacement_value kan förkortas om replacement_value är längre än check_expression.
Anmärkning
Använd COALESCE för att returnera det första icke-nollvärdet.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
A. Använd ISNULL med AVG
Följande exempel visar medelvärdet av vikten för alla produkter. Den ersätter värdet 50 för alla NULL poster i Weight tabellens kolumn Product .
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Här är resultatet.
59.79
B. Använd ISNULL
Följande exempel väljer beskrivning, rabattprocent, minsta kvantitet och maxmängd för alla specialerbjudanden i AdventureWorks2025. Om den maximala kvantiteten för ett visst specialerbjudande är NULL, är den MaxQty som visas i resultatmängden 0.00.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Här är resultatet.
| Description | DiscountPct | MinQty | Maximalt antal |
|---|---|---|---|
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 |
Följande exempel använder ISNULL för att ersätta ett NULL värde för Color, med strängen None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Här är en partiell resultatuppsättning.
| Produkt-ID | Namn | Artikelnummer | Färg |
|---|---|---|---|
| 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. Testa för NULL i en WHERE-klausul
Använd det inte ISNULL för att hitta NULL värderingar. Använd IS NULL i stället. Följande exempel visar alla produkter som har NULL i viktkolumnen. Notera avståndet mellan IS och NULL.
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
D. Använd ISNULL med AVG
Följande exempel visar medelvärdet av vikten av alla produkter i en stickprovstabell. Den ersätter värdet 50 för alla NULL poster i Weight tabellens kolumn Product .
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Här är resultatet.
52.88
E. Använd ISNULL
Följande exempel används ISNULL för att testa värden NULL i kolumnen MinPaymentAmount och visa värdet 0.00 för dessa rader.
-- Uses AdventureWorks
SELECT ResellerName,
ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;
Här är en partiell resultatuppsättning.
| Återförsäljarnamn | Minimibetalning |
|---|---|
| En cykelförening | 0.0000 |
| En cykelaffär | 0.0000 |
| En cykelbutik | 0.0000 |
| Ett stort cykelföretag | 0.0000 |
| En typisk cykelbutik | 200.0000 |
| Godkänd försäljning och service | 0.0000 |
F. Använd IS NULL för att testa för NULL i en WHERE-klausul
Följande exempel visar alla produkter som har NULL i kolumnen Weight . Notera avståndet mellan IS och NULL.
-- Uses AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;