Megosztás a következőn keresztül:


ISNULL (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A megadott pótlás értékkel helyettesíti NULL .

Transact-SQL szintaxis konvenciók

Szemantika

ISNULL ( check_expression , replacement_value )

Arguments

check_expression

Az az ellenőrzendő kifejezésNULL. check_expression bármilyen típus lehet.

replacement_value

A visszaadandó kifejezés, ha check_expression .NULL replacement_value olyan típusúnak kell lennie, amely implicit módon átalakítható a check_expression típusára.

Visszatérési típusok

Ugyanazt a típust adja vissza, mint a check_expression. Ha egy literális NULLcheck_expression-ként jelenik meg, ISNULL akkor a replacement_value adattípusát adja vissza. Ha egy literális NULLcheck_expression-ként jelenik meg, de nincs replacement_value , ISNULL akkor intet ad.

Megjegyzések

A check_expression értéke visszakerül, ha nem NULLaz. Ellenkező esetben replacement_value visszakerül, miután implicit módon átalakították a check_expression típusra, ha a típusok eltérnek. replacement_value lerövidíthető, ha replacement_value hosszabb, mint check_expression.

Megjegyzés:

Használd a COALESCE-t az első nem null érték visszaadásához.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. ISNULL használata AVG-vel

A következő példa az összes termék súlyának átlagát tartalmazza. 50 NULL Az összes bejegyzést a Weight táblázat oszlopában Product helyettesíti.

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

Itt van az eredmények összessége.

59.79

B. ISNULL használata

Az alábbi példa kiválasztja a leírást, a diszkont százalékát, a minimális mennyiséget és a maximális mennyiséget minden különleges ajánlathoz a .AdventureWorks2025 Ha egy adott különleges ajánlat maximális mennyisége NULL, az MaxQty az eredményhalmazban 0.00.

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

Itt van az eredmények összessége.

Description DiscountPct MinQty Maximális mennyiség
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

A következő példa ISNULL egy NULL értéket helyettesít , Colora stringjével None.

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

Íme egy részleges eredményhalmaz.

ProductID Név Termékszám Szín
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. Teszt egy NULL WHERE klauzulánál

Ne ISNULL keresd NULL az értékeket. A IS NULL használható helyette. Az alábbi példa minden olyan terméket talál, amely NULL a súlyoszlopban található. Figyeld meg a és ISközötti teretNULL.

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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

D. ISNULL használata AVG-vel

Az alábbi példa az összes termék súlyának átlagát tartalmazza egy mintatáblában. 50 NULL Az összes bejegyzést a Weight táblázat oszlopában Product helyettesíti.

-- Uses AdventureWorksDW

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

Itt van az eredmények összessége.

52.88

E. ISNULL használata

A következő példa ISNULL az oszlop NULL értékeinek tesztelésére MinPaymentAmount és az adott sorok értékének megjelenítésére 0.00 szolgál.

-- Uses AdventureWorks

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

Íme egy részleges eredményhalmaz.

Viszonteladó neve Minimumfizetés
Egy kerékpáros egyesület 0.0000
Egy kerékpárbolt 0.0000
Egy kerékpárbolt 0.0000
Egy nagyszerű kerékpárcég 0.0000
Egy tipikus kerékpárbolt 200.0000
Elfogadható értékesítés és szolgáltatás 0.0000

F. Használd az IS NULL használatát a NULL tesztelésére egy WHERE klauzulában

A következő példa tartalmazza az összes olyan szorzatot, amely az NULL oszlopban találhatóWeight. Figyeld meg a és ISközötti teretNULL.

-- Uses AdventureWorksDW

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