Aracılığıyla paylaş


ISNULL (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Belirtilen yenileme değeriyle değiştirilir NULL .

Transact-SQL söz dizimi kuralları

Sözdizimi

ISNULL ( check_expression , replacement_value )

Arguments

check_expression

Kontrol edilecek NULL. check_expression her türden olabilir.

replacement_value

Eğer check_expression döndürülecek ifade, 'dir.NULL replacement_value , check_expression türüne örtük olarak dönüştürülebilir bir türde olmalıdır.

Dönüş türleri

check_expression ile aynı türden döner. Eğer bir literal NULLcheck_expression olarak sağlanırsa, ISNULLreplacement_value'nin veri tipi döner. Eğer bir kelime NULLharbi check_expression olarak sağlanırsa ve replacement_value verilmezse, ISNULLbir iç döner.

Açıklamalar

check_expression değeri dönerse döner.NULL Aksi takdirde, replacement_value türleri farklıysa, örtük olarak check_expression türüne dönüştürüldükten sonra geri döner. replacement_valuereplacement_valuecheck_expression'dan uzundaysa kısaltılabilir.

Uyarı

İlk sıfır olmayan değeri döndürmek için COALESCE kullanın.

Örnekler

Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.

A. AVG ile ISNULL kullanın

Aşağıdaki örnek, tüm ürünlerin ağırlığının ortalamasını bulmaktadır. Tablonun sütunundaki 50 tüm NULL girişlerin Weight değerini Product değiştirir.

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

Sonuç kümesi aşağıdadır.

59.79

B. ISNULL kullanın

Aşağıdaki örnek, tüm özel teklifler için açıklama, indirim yüzdesi, minimum miktar ve maksimum miktarı seçer AdventureWorks2025. Belirli bir özel teklif NULLiçin maksimum miktar ise, MaxQty sonuç kümesinde gösterilen miktar 'dir.0.00

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

Sonuç kümesi aşağıdadır.

Description DiscountPct MinQty Maksimum Miktar
No Discount 0,00 0 0
Volume Discount 11 to 14 0.02 11 14
Volume Discount 15 to 24 0.05 15 yirmi dört
Volume Discount 25 to 40 0.10 Yirmi beş 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şağıdaki örnekISNULL, bir değeri , NULLiçin bir diziyle Colordeğiştirmek None için kullanılır.

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

Kısmi bir sonuç kümesi aşağıdadır.

ProductID İsim Ürün Numarası Renk
1 Adjustable Race AR-5381 Hiç kimse
2 Bearing Ball BA-8327 Hiç kimse
3 BB Ball Bearing BE-2349 Hiç kimse
4 Headset Ball Bearings BE-2908 Hiç kimse
316 Blade BL-2036 Hiç kimse
317 LL Crankarm CA-5965 Black
318 ML Crankarm CA-6738 Black
319 HL Crankarm CA-7457 Black

C. WHERE maddesinde test NULL

Değerleri bulmak ISNULL için kullanmaNULL. Bunun yerine IS NULL kullanın. Aşağıdaki örnek, ağırlık sütununda olan tüm ürünleri NULL bulur. ile ISarasındaki NULL boşluğa dikkat edin.

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

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

D. AVG ile ISNULL kullanın

Aşağıdaki örnek, örnek tablodaki tüm ürünlerin ağırlık ortalamasını bulmaktadır. Tablonun sütunundaki 50 tüm NULL girişlerin Weight değerini Product değiştirir.

-- Uses AdventureWorksDW

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

Sonuç kümesi aşağıdadır.

52.88

E. ISNULL kullanın

Aşağıdaki örnek, sütundaki değerleri test etmek ve bu satırlar için değeri ISNULL göstermek için kullanılır NULLMinPaymentAmount.0.00

-- Uses AdventureWorks

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

Kısmi bir sonuç kümesi aşağıdadır.

Bayi Adı Asgari Ödeme
Bir Bisiklet Derneği 0.0000
Bir Bisiklet Mağazası 0.0000
Bir Bisiklet Dükkanı 0.0000
Harika Bir Bisiklet Şirketi 0.0000
Tipik bir bisiklet dükkanı 200.0000
Kabul Edilebilir Satış ve Hizmet 0.0000

F. WHERE cümlesinde NULL için test etmek için IS NULL kullanın

Aşağıdaki örnek, sütunda NULL olan tüm çarpımları Weight bulur. ile ISarasındaki NULL boşluğa dikkat edin.

-- Uses AdventureWorksDW

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