If Else ve Case Yapısı

Programlama dillerinde kullanmaya alışık olduğumuz if-else, switch-case gibi akış kontrolleri T-SQL içinde kullanılabilir. Dikkat edilmesi gereken en önemli nokta eğer komut sayısı birden fazlaysa BEGIN ve END blokları arasına kodlar yazılmalıdır.

If Else Yapısı

IF ve ELSE kod bloklarında BEGIN ve END yokken ELSE IF kod bloğunda BEGIN ve END ifadeleri bulunmaktadır. Bunun nedeni ELSE IF bloğunda birden fazla kod çalıştırılacakken IF ve ELSE bloklarında bir adet kod çalıştırıalcaktır. Yani birden fazla kod olması durumunda BEGIN ve END ifadeleri kullanılmak zorundadır.

Yukarıda ki kodlar incelendiğiğinde EXISTS ifadesi ilk olarak göze çarpıyor. EXISTS sorgu sonucunda bir değer dönüp dönmediğini kontrol eder. Eğer dönerse True, dönmezse False cevabını verir. Birden fazla kod satırına sahip olacağımız için IF den hemen sonra BEGIN ifadesini yazdık. Eğer tek satırlık sorgumuz olsaydı BEGIN ve END ifadelerine gerek kalmayacaktı. Değişken ile tabloda 5000den küçük kayıtların sayısını sakladık. Her IF satırıyla kayıt sayısına göre Messages penceresinde aşağıda olduğu gibi bir mesaj yayınladık ve END ifadesi ile birden fazla satırların bittiğini tanımladık.

t-sql-if-else-begin-end

 

Case Yapısı

Case yapısı birden fazla koşul gerektiren işlemlerin kullanımını kolaylaştırmaktadır. Belirlenen koşul gerçekleştiğinde sütunun içinde ki değer yerine başka bir değer kullanılabilir. Örneğin OGRENCI tablosunun CINSIYET sütunun değerleri 1 ve 0 olarak girildiğini düşünelim. 1 olanları ERKEK 0 olanları KIZ olarak tanımlayabiliriz.

CASE yapısnın 2 farklı kullanımı vardır. İlk kullanım eşitlik durumu kontrolünde kullanılır. İkinci kullanım ise karşılaştırma kontrolünde kullanılır.

Yukarıda ki Kullanım 1’in kullanım şeklidir. CASE ile kontroledilecek sütun adı yazılır. WHEN ifadesi ile eşit olabilecek değerler kontrol edilir ve yeni değerler girilir.

Yukarıda ki örnekde YENI_CINSIYET adında ki sütunun içinde, CINSIYET sütununda 1 olan değerleri ERKEK, 0 olan değerleri KIZ olarak gösterecek. Burada kalıcı bir değişiklik olmadığını tekrar belirtelim.

 

Yukarıda karşılaştırma değerlerinin gerçekleştiği Kullanım 2’nin gösterimi yapılmıştır.

Yukarıdaki örnekde Kullanım 2’ye göre ypaılmıştır. HESAPLAR tablosunun HESAP_NO ve BAKIYE sütunlarına ek olarak YENI_BAKIYE adında sütun oluşturulmuştur. YENI_BAKIYE sütununda CASE işleminde gerçekleşen karşılaştırma sonuçları yansıtılacaktır.

t-sql-case-kullanim-2

YENI_BAKIYE sütununda yeni degerlerin ekrana yansıtıldığını görüyorsunuz.

 


Java Developer

Yazıyı Paylaş

Related Articles

Yorum Yaz

© 2025 Onur Arslan. Tüm Hakları Saklıdır. · RSS Yazıları · RSS Yorumları