T-SQL If – Else Yapısı

T-SQL’de IF…ELSE bir kontrol yapısıdır (control flow statement) ve belirli bir koşula göre farklı kod bloklarının çalıştırılmasını sağlar.

IF…ELSE yapısı, belirtilen mantıksal koşulun doğru (TRUE) veya yanlış (FALSE) olmasına bağlı olarak farklı T-SQL kod bloklarının çalıştırılmasını sağlar.

Temel Komut:

IF koşul
BEGIN
    -- Koşul doğruysa çalışacak kodlar
END
ELSE
BEGIN
    -- Koşul yanlışsa çalışacak kodlar
END

Bir örnek üzerinden yukarıdaki kavramın ne olduğunu açıklayalım.

DECLARE @Sayı INT = 100;

IF @Sayı > 50
BEGIN
    PRINT 'Sayı  50''den büyüktür.';
END
ELSE
BEGIN
    PRINT 'Sayı 50''den küçük veya eşittir.';
END

Tek satırlık ifadeler çalıştırılacaksa Begin end ifadesinin kullanılmasına gerek yoktur. Komutu aşağıdaki gibi kısalta biliriz. Ama birden fazla satır kullanacaksak begin-end ifadesinin kullanılması gerekmektedir. Diğer kodlama dillerinde süslü paranteze karşılık gelmektedir.

DECLARE @Sayı INT = 100;

IF @Sayı > 50
    PRINT 'Sayı  50''den büyüktür.';
ELSE
    PRINT 'Sayı 50''den küçük veya eşittir.';

Yukarıdaki sorgumuzu daha kompleks bir hale getirirsek begin end ifadesinin kullanıldığını görmekteyiz.

Eğer sorgumuzda birden fazla şart ifademiz varsa if-else-if-else ifadesi kullanabiliriz. Birden fazla çalıştırılacak komut vars begin end ifadesi kullanılır. Tek satırlık kod dönecekse if sonucumuzda begin end ifadesinin yazılmasına gerek yoktur. Begin end komutlarına scop denilmektedir.

DECLARE @puan INT = 75;

IF @puan >= 90
BEGIN
    PRINT ' A aldınız';
END
ELSE IF @puan >= 80
BEGIN
    PRINT 'B aldınız';
END
ELSE IF @puan >= 70
BEGIN
    PRINT 'C aldınız';
END
ELSE IF @puan >= 50
BEGIN
    PRINT 'D aldınız';
END
ELSE
BEGIN
    PRINT 'Kaldınız (F)';
END

Daha genel bir örnek yapacak olursak. Aşağıdaki komut ile değişkenle belirlenen ismin olup olmadığını kontrol edilip eğer yunus değeri yoksa değişkende belirtilen değerin insert edilmesi gerekmektedir. Bu komutta @@Rowcount ifadesi çalışmadan önce kendinden önceki select cümlesindeki kayıt sayısını getirmektedir.

Declare @adı varchar(20)='Yunus'

Declare @soyad varchar(20)='Yücel'

select*from Personeller where Adi=@adı and SoyAdi=@soyad

if @@ROWCOUNT>0
print @adı+' '+@soyad+' '+'Bulunmaktadır.'
else
begin
print @adı+' '+@soyad+' '+'Bulunmamaktadır.'
insert Personeller(Adi,SoyAdi) values(@adı,@soyad)
print @adı+' '+@soyad+' '+'Eklendi.'
end

Bu komutu tekrar çalıştırılınca Belirtilen ismin bulunduğunu dile getirmektedir.

Bu makalede if-else komutunu detaylı bir şekilde görmüş olduk. Başka makalede görüşmek dileğiyle..

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir