Merhaba, SQL sorgusunda null gelen alana değer atama yani SQL null kontrolü aslında oldukça basittir. Bu isteğinizi de kolayca halledebiliyorsunuz. Null gelen alanlara ister 0 atayın isterseniz farklı bir şey. Bunun için yardımımıza isnull fonksiyonu koşuyor. Kullanımı da oldukça basittir. Örnekle açıklamaya çalışayım.
select ogrenci_adi,ogrenci_ceptel from ogrenciler where durum='aktif'
Yukarı da ki bu sorgu ile ogrenciler tablosundan durumu 'aktif' olan ogrenci_adi ve ogrenci_ceptel alanlarını çekiyoruz. Bu sorgu çalıştırıldığında aşağıda ki şekilde bir sonuç elde ettiğimizi varsayalım.
ogrenci_adi | ogrenci_ceptel |
Ahmet | 05411456589 |
Mehmet | 05557894561 |
Fırat | NULL |
Gördüğünüz üzere ogrenciler tablosunda Fırat adlı öğrencinin telefon numarası kayıtlı olmadığından dolayı bu alan null geliyor. Peki bu alan üzerinde null kontrolü yapıp bu alanın 0 gelmesini nasıl sağlayabiliriz? Hemen sorgumuzda görelim.
select ogrenci_adi, ISNULL(ogrenci_ceptel,0) as ogrenci_ceptel from ogrenciler where durum='aktif'
ISNULL fonksiyonunun kullanımı da bu şekilde. Basit kullanımı sayesinde null alanların kontrolü oldukça basit. Bu sorgu çalıştırıldığında aşağıda ki sonuç elde edilir. Sorgu içerisinde ki ( ISNULL(ogrenci_ceptel,0) as ogrenci_ceptel ) as ifadesi sorgudan dönen kolona isim vermek adına kullanılır. Burada as terimini kullanmasak sorgudan dönen aşağıda ki ogrenci_ceptel kolonunun adında ogrenci_ceptel yerine (No column name) yazardı. Yani kolon isimsiz olurdu. İsimsiz olmasın diye aynı isimi as kullanarak verdik.
ogrenci_adi | ogrenci_ceptel |
Ahmet | 05411456589 |
Mehmet | 05557894561 |
Fırat | 0 |
Null gelen alana 0 atamak yerine string '' atamak için de sorgunuzu aşağıda ki şekilde kullanabilirsiniz.
select ogrenci_adi, ISNULL(ogrenci_ceptel,'') as ogrenci_ceptel from ogrenciler where durum='aktif'
Türkiye'nin en iyi soru cevap sitesi | SorSoyleyelim.com