SQL Server’da COUNT Fonksiyonu ve NULL Değerler
Herkese merhaba,
Bu yazıda SQL Server’da COUNT fonksiyonu ve NULL değerler hakkında bilgi vereceğim.
COUNT fonksiyonu ve NULL değerler demekle neyi kastediyorum kısaca açıklayayım.
COUNT fonksiyonu bildiğiniz üzere belirtilen alandaki veya tablodaki toplam kayıt sayısını veriyor.
Anlatıma aşağıdaki örnek üzerinden devam edeceğim.
--Tablonun oluşturulması
CREATE TABLE TabloDegerleri
(
ID INT PRIMARY KEY IDENTITY(1, 1),
Ad NVARCHAR(50)
);
--Tabloya veri eklenmesi
INSERT INTO dbo.TabloDegerleri
SELECT 'YAVUZ' UNION ALL
SELECT NULL UNION ALL
SELECT 'PELİN' UNION ALL
SELECT NULL UNION ALL
SELECT 'BİLGE' UNION ALL
SELECT 'HASAN' UNION ALL
SELECT 'MUSTAFA'
--COUNT Fonksiyonu Kullanımı İncelenmesi
SELECT
COUNT(Ad) AS SayacDegeri_1
,COUNT(*) AS SayacDegeri_2
,COUNT(1) AS SayacDegeri_3
FROM TabloDegerleri;
Yukarıdaki kod bloğunu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.
Gördüğünüz üzere bir tablo oluşturdum ve sonrasında içerisine değerler girdim. Şimdi COUNT fonksiyonunu incelemek için yazdığım SELECT sorgusunu inceleyelim.
COUNT(Ad) dediğim zaman NULL değerleri hiç hesaba katmadan kayıt sayısını bizlere getirmiş oldu. Kısaca 7 kayıttan 5 adetini bizlere saydı. 2 adet NULL kaydın sayısını düşerek bize sonucu verdi.
COUNT(1) ve COUNT(*) dediğim zaman NULL değerleri hesaba katarak 7 adet kayıt sayısını bizlere getirmiş oldu. COUNT(1) ve COUNT(*) birbirinin yerine kullanılabilir yapılardır. Her ikisi de aynı sonucu verir. Her ikisi de NULL değerleri göz ardı etmez ve her ikisi de belirli bir tablonun satır sayısını döndürür. Tabi dikkat etmeniz gereken bir nokta var. Kolon sayısı fazla olan tablolarda performans sorunları nedeniyle COUNT(*) dikkatli kullanılmalıdır.
Bu farkı birçoğunuz biliyor da olabilir bilmiyor da olabilir faydalı olması açısından anlatmak istedim.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.