0 oy
4.7k gösterim
Merhaba, SQL sorgum da NULL gelen bazı alanlar oluyor. NULL gelen alan olunca program tarafında da bir çok farklı hata ile karşılaşabiliyorum. SQL sorgusu içerisinde NULL kontrolünü nasıl yapabilirim? Örneğin NULL gelen alana nasıl 0 atayabilirim? Teşekkürler.

1 cevap

0 oy
 
En İyi Cevap

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_adiogrenci_ceptel
Ahmet05411456589
Mehmet05557894561
FıratNULL

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_adiogrenci_ceptel
Ahmet05411456589
Mehmet05557894561
Fırat0

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

İlgili sorular


Web sitemiz hakkında ki reklam,istek,öneri ve şikayetlerinizi iletisim(at)sorsoyleyelim.com adresine mail atabilir veya sitemizin iletişim formu üzerinden bize yazabilirsiniz.
Sitede ki içeriklerin izinsiz kullanılması ya da kopyalanması yasaktır. Bknz: Kullanım şartları.
...