ilgili yazının güncel hali için lütfen
http://www.sadullahkeles.com/2007/03/20/isnull-ifadesi/
adresini ziyaret ediniz..
IsNull ifadesi bir ifadenin null olup olmadığını kontrol eder ve eğer null ise default bir değer kullanmamıza olanak verir. Kullanımı IsNull(alan,yenideger) şeklindedir. Burda dikkat edilmesi gereken nokta yenideger isimli değişkenin alan isimli değişkenle aynı tür olmasıdır. Örnek vermek gerekirse isnull(date,’2007.12.12′) (date tarih türünde bir değişken) eğer bir tarih alanını kontrol ediyorsak null olması durumunda yerine yazacağımız değişken de tarih formatında olmalıdır. isnull(date,’tarih olmayan bir ifade’) şeklinde bir kullanım hata verir.
Örnek Kullanım :
use northwind
select lastname,firstname,isnull(reportsto,0) from employees where reportsto is null
Kullanimi coklu parametre alan select ifadelerinde faydalidir Tek sorgu ile isi halletmeye yarar.
ornek vermek gerekirse
sp yaratin!
create proc productListAdvanced(@cNo int = null,@sNo int = null)
as
begin
select * from products
where categoryID= isnull(@cNo,categoryID)
and supplierID=isnull( @sNo, supplierID)
end
kullanimi
exec productListAdvanced 4,28*
2 degere de null gonderirseniz
select * from products demis olursunuz…
Burada id alanlarındaki where kosulunda kullanmışsın, büyük ihtimalle bu kolonlar not null olduğu için
dogru kayıtların gelmesinde sorun oluşturmaya bilir. Ama performansını yine düşürür.
Eğer genel anlamda kullanıyorsan ve parametreleri null gönderirsen, kolon değeride null ise null olan kayıtarın gelmez. Bu da yanlışlığa sepeb olur.
Yav Sadullah hocam senin bu blog çok işime yarıyor yeminle adamın dibisin…
Barancan hocam sende adamın dibisin!