Delen via


ISNULL (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Vervangt NULL door de gespecificeerde vervangingswaarde.

Transact-SQL syntaxis-conventies

Syntaxis

ISNULL ( check_expression , replacement_value )

Arguments

check_expression

De uitdrukking waarvoor gecontroleerd moet worden NULL. check_expression kan van elk type zijn.

replacement_value

De uitdrukking die teruggegeven moet worden als check_expression is NULL. replacement_value moet van een type zijn dat impliciet omgezet kan worden in het type check_expression.

Retourtypen

Geeft hetzelfde type terug als check_expression. Als een letterlijke als NULLcheck_expression wordt gegeven, ISNULL geeft het datatype van de replacement_value terug. Als een letterlijke als NULLcheck_expression wordt gegeven en er geen replacement_value wordt gegeven, ISNULL wordt een int teruggegeven.

Opmerkingen

De waarde van check_expression wordt teruggegeven als dat niet NULLzo is. Anders wordt replacement_value teruggegeven nadat het impliciet is omgezet naar het type check_expression, als de types verschillend zijn. replacement_value kan worden ingekort als replacement_value langer is dan check_expression.

Opmerking

Gebruik COALESCE om de eerste niet-nulwaarde terug te geven.

Voorbeelden

De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .

Eén. Gebruik ISNULL met AVG

Het volgende voorbeeld toont het gemiddelde van het gewicht van alle producten. Het vervangt de waarde 50 voor alle NULL vermeldingen in de Weight kolom van de Product tabel.

USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO

Hier is het resultatenoverzicht.

59.79

B. Gebruik ISNULL

Het volgende voorbeeld selecteert de beschrijving, het kortingspercentage, de minimale hoeveelheid en de maximale hoeveelheid voor alle speciale aanbiedingen in AdventureWorks2025. Als de maximale hoeveelheid voor een bepaald speciaal aanbod is NULL, is de MaxQty weergegeven in de resultaatset 0.00.

USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO

Hier is het resultatenoverzicht.

Description DiscountPct MinQty Maximum aantal
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 vijfentwintig 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

Het volgende voorbeeld gebruikt ISNULL om een NULL waarde voor te vervangen door Colorde string None.

USE AdventureWorks2022;
GO
SELECT ProductID,
    Name,
    ProductNumber,
    ISNULL(Color, 'None') AS Color
FROM Production.Product;

Hier volgt een gedeeltelijke resultatenset.

ProductID Naam Productnummer Kleur
1 Adjustable Race AR-5381 Geen
2 Bearing Ball BA-8327 Geen
3 BB Ball Bearing BE-2349 Geen
4 Headset Ball Bearings BE-2908 Geen
316 Blade BL-2036 Geen
317 LL Crankarm CA-5965 Black
318 ML Crankarm CA-6738 Black
319 HL Crankarm CA-7457 Black

C. Test voor NULL in een WHERE-clausule

Je zoekt ISNULL geen waarden uit NULL . Gebruik in plaats daarvan IS NULL. Het volgende voorbeeld vindt alle producten die in de gewichtkolom staan NULL . Let op de ruimte tussen IS en NULL.

USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Gebruik ISNULL met AVG

Het volgende voorbeeld toont het gemiddelde van het gewicht van alle producten in een steekproeftabel. Het vervangt de waarde 50 voor alle NULL vermeldingen in de Weight kolom van de Product tabel.

-- Uses AdventureWorksDW

SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;

Hier is het resultatenoverzicht.

52.88

E. Gebruik ISNULL

Het volgende voorbeeld wordt gebruikt ISNULL om waarden in de kolom NULL te testen MinPaymentAmount en de waarde 0.00 voor die rijen weer te geven.

-- Uses AdventureWorks

SELECT ResellerName,
       ISNULL(MinPaymentAmount,0) AS MinimumPayment
FROM dbo.DimReseller
ORDER BY ResellerName;

Hier volgt een gedeeltelijke resultatenset.

WederverkoperNaam MinimumBetaling
Een fietsvereniging 0.0000
Een fietsenwinkel 0.0000
Een fietsenwinkel 0.0000
Een Groot Fietsenbedrijf 0.0000
Een typische fietsenwinkel 200.0000
Acceptabele verkoop en service 0.0000

F. Gebruik IS NULL om te testen op NULL in een WHERE-clausule

Het volgende voorbeeld vindt alle producten die in de NULL kolom hebbenWeight. Let op de ruimte tussen IS en NULL.

-- Uses AdventureWorksDW

SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;