Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-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;