IF, IF ELSE, İç İçe IF Kullanımı

IF ..(Else), belirlenen şarta bağlı olarak işlem yapabilmeyi sağlar. Sıralı IF bloklarında belirtilen şartlar sağlanmadığında işlem en son ELSE bloğunda biter. ELSE kullanılmak zorunda değildir ama kod bloğunu çalıştırdığınızda IF içinde belirtilen koşullar da sağlanmıyorsa bir sonuç dönmeyecektir.

Yapılacak işlem tek bir satırdan oluşuyorsa BEGIN END yazılmadan da kod çalışacaktır.

IF koşul (boolean_ifadesi)

          BEGIN

                    koşul karşılanıyorsa yapılacak işlem (print, select,update, delete vb.) (TRUE)

          END

                    ELSE

          BEGIN

                    üst yapılacak işlem (print, select,update, delete vb.) (FALSE)

          END

 

(Örneklerde NORTHWIND veritabanı kullanılmıştır.)

Aşağıdaki örnekte IF içinde kullanılmak üzere UrunSayısı isimli Integer bir değişken oluşturuldu. SET ile değişkenin değerini Products tablosundaki toplam kayıt sayısından alması sağlandı.

Hemen altında basit bir IF işlemi var. Eğer @UrunSayısı 30 dan küçükse ‘Urun sayısı 30dan az’

Yazacak. Değilse, ‘Urun sayısı 30dan fazla’ yazacaktır.

 

-Bu örnekte toplam ürün sayısı 77 geldiği için ‘Urun sayısı 30dan fazla’ sonucu dönüyor-

DECLARE @Urunsayisi INT

SET @Urunsayisi=(SELECT COUNT(*) FROM Products)

IF @Urunsayisi<30
PRINT 'Urun sayısı 30dan az'
ELSE
PRINT 'Urun sayısı 30dan fazla'

 

Aynı sorgu BEGIN END kullanılarak da yazılabilir. Aşağıda BEGIN END ve 3 satırlı işlem kullanımı da gösterilmiştir.

 

DECLARE @Urunsayisi INT

SET @Urunsayisi=(SELECT COUNT(*) FROM Products)

IF @Urunsayisi<30
	BEGIN
		PRINT 'Urun sayısı 30dan az'
		PRINT 'Satis icin yeterli ürün bulunmuyor'
		SELECT TOP 5* FROM Products
	END
ELSE
	BEGIN
		PRINT 'Urun sayısı 30dan fazla'
		PRINT 'Satis icin yeterli ürün bulunuyor'
	    SELECT TOP 5 ProductName,* FROM Products
	END

 

ELSE IF YAPISI

İşlem yapılacak alan için kontrol noktaları arttırılmak istendiğinde İç içe If kullanılır.

İç İçe IF

IF koşul1

       BEGIN

                    — işlem1

       END

ELSE IF koşul2

       BEGIN

                    — işlem2

       END

ELSE IF koşul3

       BEGIN

                    — işlem3

       END

       …..

ELSE

       BEGIN

                    — işlemSon

       END

ELSE IF için çalışma yöntemi sıralı bir şekilde ilerler. Sırayla tüm koşulları kontrol ederek, koşula ilk uyan işlemi gerçekleştirir.

Aşağıdaki örnekte, SELECT COUNT(*) FROM Products  sorgusundan gelen ürün sayısı 77 olduğu için 3.koşula düşecek ve ‘Urun sayısı yeterli miktarda’ yazdıracaktır.

(Farklılık açısından son iki işlemde BEGIN END kullanılmamıştır.)

DECLARE @Urunsayisi INT

SET @Urunsayisi=(SELECT COUNT(*) FROM Products)

IF @Urunsayisi<30
	BEGIN
		PRINT 'Urun sayısı 30dan az'
	END
ELSE IF @Urunsayisi>=30 AND @Urunsayisi<50
	BEGIN
		PRINT 'Urun sayısı 30dan fazla'
	END
ELSE IF @Urunsayisi>=50 AND @Urunsayisi<80
		PRINT 'Urun sayısı yeterli miktarda'
ELSE  
		PRINT 'Urun sayısı çok fazla'

 

İÇ İÇE IF

Syntax üzerinden incelediğimizde ilk önce gittikçe daha özele inen bir kontrol noktalarını kontrol eder. Koşul1 uyuyorsa kontrole devam eder ve koşul2 ye bakar. True dönmeye devam ettikçe tüm if koşullarını kontrol eder. En son yapılacak işlemi gerçekleştirir. Koşulların tuttuğu tüm noktalarda yapılacak bir işlem eklendiyse bunları gerçekleştirir.

IF koşul1

             BEGIN 1   —-bir işlem yapılmak isteniyorsa eklenir.(optional)

                         IF koşul2

                                     BEGIN 2 —-bir işlem yapılmak isteniyorsa eklenir. (optional)

                                                 IF koşul3

                                                             BEGIN 3 ….. yapılacak işlem eklenir.

                                                             END 3

                                      END 2

             END 1

ELSE

BEGIN 4

               END 4

 

ÖRNEK

DECLARE @Urunsayisi INT

SET @Urunsayisi=(SELECT COUNT(*) FROM Products)

IF @Urunsayisi>=50 AND @Urunsayisi<80
	BEGIN
		PRINT 'Urun sayısı 50 ile 80 arasında'	
			 IF @Urunsayisi=77-->30 AND @Urunsayisi<=50
			 		PRINT 'Urun sayısı tam istenen sayıda'	
				BEGIN
					 IF @Urunsayisi>80
					 	BEGIN
						    PRINT 'Urun sayısı çok fazla'
						END
				END
	END
else
print 'Ürün bilgisine ulaşılamadı'

 

ÇIKTI

Urun sayisi 50 ile 80 arasinda
Urun sayisi tam istenen sayida

 

buketbodur tarafından yayımlandı

İş zekası ve Veri Ambarı Danışmanı

Yorum bırakın