Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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;