İç İçe IF ELSE Kullanımı
İF EXİSTS DEYİMİ İF EXİSTS KULLANIMI İF NOT EXİSTS KULLANIMI MSSQL İF EXİSTS MSSQL İF NOT EXİSTS SQL İF EXİSTS SQL İF NOT EXİSTS
.
1
Hiç yorum yok
MS SQL’de kouşullu ifadeleri oluştururken karmaşık koşullar sağlamak için IF ELSE bloklarını birbirlerinin içinde oluşturabiliriz. Örneğin günün tarihini kontrol edeceksiniz ve şartınız olarak da bu günün Pazartesi olmadığından emin olmanız gerekiyor diyelim. Yine iç içe IF, ELSE bloğunda BEGIN ve END kullanmak isteğe bağlıdır ama ben kullanılmasını öneririm. Syntax olarak yani söz dizimi olarak kullanışına iki yapıyı örnek vermek istiyorum:
1)
1
2
3
4
5
6
| IF koşulumuz BEGIN durum1 IF koşul BEGIN durum2 END END |
2)
1
2
3
4
5
6
7
8
9
10
11
| IF koşul BEGIN durum1 END ELSE BEGIN durum2 IF koşul BEGIN durum3 [durum4] END ELSE durum5 END |
gibi yapılarda kullanabiliriz. Tabi görüleceği üzere iç içe koşullu ifadeleri kullandıkça kodlarımız da karmaşıklaşıyor Şimdi basit bir örnek ile yazımızı sonlandıralım: (AdventureWorks2012 veri tabanı üzerinde işlem yapıyorum)
1
2
3
4
5
6
7
8
9
| DECLARE @Sayi INT ; SELECT @Sayi = COUNT (*) FROM Sales.Customer; IF @Sayi > 300 BEGIN PRINT '300 ün üzerinde veri var' ; IF DATEPART(dw, getdate()) = 2 BEGIN PRINT 'Günlerden Pazartesi' ; END ; ELSE BEGIN PRINT 'Bugün günlerden Pazartesi değil' ; END ; END ; |
Şimdi ben bu kod bloğunda iki durumu kontrol ediyorum ama birinde sadece verinin doğrulanması sonucu PRINT ile ifademi yazdırdım. Sales.Customer tablosu içindeki veri satırlarını kontrol ettim, eğer 300’den fazla ise 300’ün üzerinde veri var yazdırdım. Birde buna ek olarak, koşulumun diğer kısmında tarih kontrol ettirdim. Burada DATEPART komutunu kullanıyorum, daha sonra haftanın hangi günü olduğunu öğreniyorum. Burada 2 demek Pazartesi demek, ben yerel lokal ayarlarımı yapmadığım için haftanın ilk günü Pazar olarak kabul ediliyor. İngilizlerin ağırlığı Neyse, kodlarımı bugün yani pazar günü yazdığım için doğal olarak getdate ile geriye 1 dönecek ve koşullardan da ‘Bugün günlerden Pazartesi değil’ yazacak.. Sonuç aynen aşağıdaki gibi. Bir sonraki yazıda görüşmek üzere..
Kaydol:
Kayıt Yorumları
(
Atom
)
Hiç yorum yok :
Yorum Gönder