Sql dili ve veritabanıyla ilgilenen herkesin kayıtlar içerisindeki null alanlar ile problem yaşadığı olmuştur. Öncelikle null kavramının sayı tipleri için 0, karakter tipleri içinse boşluk olmadığını söyleyerek başlayayım. Null değer daha önce ilgili alana hiçbir veri girilmediği gösteren bir belirsizlik ifade eder. Bu yüzden null olan içeriklerin birbiriyle karşılaştırılması ve kontrol edilmesi mümkün olmamaktadır.
Sql içerisinde bu problemi çözmek amacıyla Is NULL operatörü ve metodu bulunmaktadır. Öncelikle is null operatörünün kullanımına bir göz atalım.
1 |
Select * from Production.Product where color is null |
Yukarıdaki sorgu çalıştırıldığında color sütununda değeri null olan kayıtlar listelenecek ve sorgu çıktısı aşağıdaki gibi olacaktır.

Peki color değeri null olmayan kayıtları listelemek isteseydik, sorgumuzu not operatörüyle aşağıdaki gibi düzenlememiz gerekirdi.
1 |
Select * from Production.Product where color is not null |

Özellikle veritabanı sorguları sonucunda oluşturulan raporlama ekranlarında verilerin null olarak gösterilmesi istenmeyen bir durumdur. Bunu önlemek amacıyla isnull() fonsiyonu kullanılır.
Bu fonksiyon iki parametre almaktadır. Birinci parametreye null olup olmadığı kontrol edilecek alan, ikinci parametreye ise değer null ise döndürülecek değer girilir.
1 |
Select ProductID, Name, ProductNumber, MakeFlag, FinishedGoodsFlag, ISNULL(Color, 'Belirtilmedi') as Renk from Production.Product |
Yukarıdaki sorguda isnull metodunun aldığı ilk parametre tablodaki color sütunudur. Bu sütündaki değerin null olması durumunda ikinci parametredeki ‘Belirtilmedi’ yazısı gösterilecektir. Yukarıdaki sorgu çalıştırıldığında aşağıdaki gibi bir sonuç listesi döndürülür.

Yukarıda ki örneklerin hepsinde AdventureWorks2012 veritabanında ki Production.Product tablosu kullanılmıştır. Eğer select sorguları ile ilgili detaylı bilgi almak isterseniz tıklayınız. Konuyla ilgili tüm sorularınızı bana iletebilirsiniz.
Peki SQL de Şartlı Sildirme Nasıl Yapabilirim ? Yani Delete From satisrezerve where s_tarih = Date() and sozlesme Is Null “; Böyle Olmuyor
merhabalar bir problemim var yardımcı olursanıoz çok sevinirim. c# tarafında sql ile bir sorgu oluşturuyorum. Programda şunu istiyorum. iki adet radio butonum var. birincisi seçili ise veritabanında o alana ait yere ok yazısı yazdırıyorum ve diğerini null değer olarak atamak istiyorum. İKinci radio buton içinde aynısı geçerli. Seçtiğim radio butona göre güncelleme komutunu kullanıyorum. Seçili olmayanı null değer olarak güncellemek istiyorum. Bunun için ne yapmam gerekiyor. BİR DEĞİŞKENE NULL DEĞERİNİ VERİP DENEDİM OLMADI. isnull() fonksiyonu ilede olmadı.