ISNULL (Transact-SQL)
NULL değerini belirtilen değerle değiştirir.
Transact-SQL Sözdizim Kuralları
Sözdizimi
ISNULL ( check_expression , replacement_value )
Bağımsız değişkenler
check_expression
NULL için denetlenecek ifadedir. check_expression herhangi bir türde olabilir.replacement_value
check_expression NULL ise döndürülecek ifadedir. replacement_value örtülü olarak check_expresssion türüne dönüştürülebilecek bir türde olmalıdır.
Dönüş Türleri
check_expression ile aynı türü döndürür.
Açıklamalar
NULL değilse check_expression ifadesinin değeri döndürülür; aksi halde, türler farklıysa, örtülü olarak check_expression türüne dönüştürüldükten sonra replacement_value döndürülür.
Örnekler
A.ISNULL'ın AVG ile kullanılması
Aşağıdaki örnek tüm ürünlerin ortalama ağırlığını bulmaktadır. Product tablosunun Weight sütunundaki tüm NULL girişleri 50 değeri ile değiştirmektedir.
USE AdventureWorks2012;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
USE AdventureWorks2012;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Sonuç kümesi buradadır.
--------------------------
59.79
(1 row(s) affected)
B.ISNULL'ın kullanılması
Aşağıdaki örnekler AdventureWorks2012 şirketindeki tüm özel tekliflerin açıklamasını, indirim yüzdesini, en düşük miktarını ve en yüksek miktarını seçmektedir. Belirli bir teklifin en yüksek miktarı NULL ise, sonuç kümesinde gösterilen MaxQty 0.00 olarak ayarlanır.
USE AdventureWorks2012;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
USE AdventureWorks2012;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Sonuç kümesi buradadır.
Description DiscountPct MinQty Max Quantity
--------------- ------------- -------- ---------------
No Discount 0.00 0 0
Volume Discount 0.02 11 14
Volume Discount 0.05 15 4
Volume Discount 0.10 25 0
Volume Discount 0.15 41 0
Volume Discount 0.20 61 0
Mountain-100 Cl 0.35 0 0
Sport Helmet Di 0.10 0 0
Road-650 Overst 0.30 0 0
Mountain Tire S 0.50 0 0
Sport Helmet Di 0.15 0 0
LL Road Frame S 0.35 0 0
Touring-3000 Pr 0.15 0 0
Touring-1000 Pr 0.20 0 0
Half-Price Peda 0.50 0 0
Mountain-500 Si 0.40 0 0
(16 row(s) affected)
C.Bir WHERE yan tümcesinde NULL değerini arama
NULL değerleri bulmak için ISNULL işlevini kullanmayın. Bunun yerine IS NULL kullanın. Aşağıdaki örnek, ağırlık sütununda NULL olan tüm ürünleri bulmaktadır. IS ve NULL arasındaki boşluğa dikkat edin.
USE AdventureWorks2012;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
USE AdventureWorks2012;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO