Sql Server COALESCE İfadesi Kullanımı

Sql Server için uzun zamandır herhangi bir makale yazmadığımı farkettim, Bu makalede açıkçası benimde yeni tanıştığım COALESCE ifadesini ele alacağız ve çok işinize yarayacağını düşündüğüm bir konu olacağını düşünüyorum.

Sql Server COALESCE İfadesi Kullanımı

Sql Server COALESCE İfadesi Kullanımı

Çoğu zaman sql cümlelerimiz içerisinde null kontrolleri yaparak akışı farklı alanlardaki değerleri elde etmek için kullanırız işte tam olarak burada birden fazla alanın null kontrolünü yapıp her null kontrolü şartı sağlandıkça değeri elde edilecek bir sonraki alana otomatik yönlendirmesi sağlanacak ve böylelikle isnull içerisinde isnull karmaşasından kurtulabilirsiniz örnek bir senaryo üzerinden ilerlersek eğer isnull ve coalesce arasındaki farkı daha iyi anlamamıza yardımcı olabilir.

Şimdi şöyle bir senaryo düşünelim okul veritabanında öğrencilerin bilgilerinin tutulduğu bir tablo olsun ve bu tablo içerisinde anne, baba, büyükanne ve büyükbaba bilgileri için 4 tane kolonda ayrı ayrı isimlerinin saklandığını düşünelim ve bazı öğrencilerde anne adı var bazılarında baba adı veya bazılarında sadece büyükbaba-büyükanne adlarının dolu olduğunu varsayalım bu durumda hazırlayacağımız sql sorgusunda öğrenci adı yanında ebeveyn adı dönmemiz gerekiyor şimdi bu senaryoyu hem isnull hemde COALESCE yöntemi ile deneyelim.

Örnek olarak kullanabileceğiniz tablo modeli şu şekildedir.

Tablo Modeli

Ebeveyn adlarına ait alanlardan bilgisi girilmiş olan ilk ismi sorgu sonucunda geri dönderecek örnek sorgu alttaki gibidir.

Sorgu COALESCE

Sorgu ISNULL

Sonuç

StudentName ParentName
Hakan Hande
Ceyda Osman
Serkan Ferit
Serkan Ekrem

Gördüğünüz üzere Anne Adı yok baba adı yoksa büyük anne adı oda yoksa büyük baba adını dönecek şekilde bir ParentName kolonu ekledik sorgumuza ve her bir öğrenciye ait ebeveyn adını dönmüş oluyoruz.

Demo: http://sqlfiddle.com/#!18/a7540/1

Sql Server COALESCE İfadesi Kullanımı
5 (100%) 2 oy

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.