Anasayfa / Yazılım / SQL / SQL ELSE Kullanımı

SQL ELSE Kullanımı

Bir önceki yazımda MS SQL’de IF kullanımına değinmiştim. Bu yazımda ise ELSE kullanımına da değinmek istiyorum. Sorgum sonucunda bazen istemediğimiz yani FALSE olan durumlar için de bir şeyler yapılmasını isteriz. İşte bu gibi durumlarda ELSE yapısını kullanırız. IF ve ELSE yapısını sorgularımızda aşağıdaki şekillerde kullanabiliriz.

1) IF koşul durum ELSE durum

2) IF koşul BEGIN durum1 varsaDurum2 END ELSE durum

3) IF koşul BEGIN durum1 varsaDurum2 END ELSE BEGIN durum1 varsaDurum2 END

Şimdi bir kaç örnekle birlikte kullanımını görelim. AdventureWorks2012 veritabanı üzerinde çalışıyorum.

Şimdi bir değişken oluşturalım INT tipinde olsun. Daha sonra Sales.Customer tablosundaki verilerin satır sayısını bulalım ve bunu bu değişken içine atalım. Daha sonra eğer bu değer 100?den fazla ise ekrana ?Satır sayısı 100 den fazladır” yazalım. Eğer 100’den az değilse de “Satır sayısı 100 den azdır.” yazalım.

DECLARE @SatirSayisi INT;
SELECT @SatirSayisi = COUNT(*) FROM Sales.Customer;
IF @SatirSayisi > 100 
PRINT 'Satır sayısı 100 den fazladır.';
ELSE PRINT 'Satır sayısı 100 den azdır.';
GO

2013052701

Şimdi de Person.Person tablosundaki BusinessEntityID değeri 1 olan verinin FirstName ve LastName alanlarını oluşturacağımız AdSoyad değişkeni içine alalım. Daha sonra sırası ile bu veri içinde Ken ve Katty ifadeleri geçiyor mu bakalım. Önce Ken varmı bakıcaz, eğer ken varsa Ken ifadesi geçiyor yazalım. Geçmiyorsa Ken ifadesi geçmiyor yazalım.

DECLARE @AdSoyad NVARCHAR(50);
SELECT @AdSoyad = FirstName + ' ' + LastName
FROM Person.Person WHERE BusinessEntityID = 1;
IF CHARINDEX('Ken',@AdSoyad) > 0 BEGIN
PRINT 'Veri satırı içinde KEN mevcut';
END;
ELSE BEGIN 
PRINT 'Veri satırı içinde KEN mevcut değil'
PRINT 'Ad Soyad: ' + @AdSoyad;
END;

2013052702

Sonuç olarak IF koşulu sağlandığı için yani TRUE olduğu için IF’den sonraki PRINT çalışıyor.

Şimdi üstteki işlemi birde Katty için bakalım.

DECLARE @AdSoyad NVARCHAR(50);
SELECT @AdSoyad = FirstName + ' ' + LastName
FROM Person.Person WHERE BusinessEntityID = 1;
IF CHARINDEX('Katty',@AdSoyad) > 0 BEGIN
PRINT 'Veri satırı içinde KATTY mevcut';
END;
ELSE BEGIN 
PRINT 'Veri satırı içinde KATTY mevcut değil'
PRINT 'Ad Soyad: ' + @AdSoyad;
END;

2013052901

Görüleceği üzere bu sefer mevcut ifade olmadığı için ELSE’den sonraki kısım çalışıyor, IF kısmı çalışmıyor.

Bir cevap yazın

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