Sql' de Denetim Deyimleri ve Döngüler (if-case-while)
SQL SERVER' de IF Else Kullanımı:
Karar ifadelerinin en basitidir. If komutunun ifadesi doğru olursa takip eden ifadeler,yanlış olursa else ifadesinden sonraki ifadeler işleyecektirAşağıda yazım şekli gösterilmiştir.
if(mantıksal ifade)
begin
// şartın doğru olması durumunda yapılacak işlemler
end
else //else yerine else if (şart) şeklinde kontrol cümleleri artırılabilir.
begin
//diğer dumunda yapılacak işlemler
end
İki notun ortalamasını hesaplayıp geçme kalma durumunu ekrana yazdıralım:
declare @n1 int, @n2 int,@ortalama float
set @n1=10
set @n2=50
set @ortalama=(@n1+@n2)/2
print 'not ortalaması='
print @ortalama
if(@ortalama>=45)
begin
print 'geçtiniz'
end
else
begin
print 'kaldınız'
end
Şimdide bir önceki deste kullandığımız tablo ile
declare @_1yazili int
select @_1yazili=AVG(ogr_not1)from ogrenci
if(@_1yazili<45)
begin
print 'sınıfın 1 yazılı ortalaması 45 den küçük'
end
else
begin
print 'sınıfın 1 yazılı ortalaması 45 den büyük'
end
onur kara ismli öğrencinin notunu ve durumunu değişkenler kullanarak hesaplayalım:
declare @n1 int, @n2 int, @n3 int, @ortalama float
select @n1=ogr_not1,@n2=ogr_not2,@n3=ogr_not3 from ogrenci where ogr_ad='onur' and ogr_soyad='kara'
set @ortalama=(@n1+@n2+@n3)/3
print 'ortalamanı='
print @ortalama
if(@ortalama<45)
begin
print 'durumunuz 1'
end
else if(@ortalama>=45 and @ortalama<54)
begin
print 'durumunuz 2'
end
else if(@ortalama>=55 and @ortalama<70)
begin
print 'durumunuz 3'
end
else if(@ortalama>=70 and @ortalama<84)
begin
print 'durumunuz 4'
end
else if(@ortalama>=85 )
begin
print 'durumunuz 5'
end
Case Deyimi:
Birden çok deyimlerini tek bir ifade içinde belirtmemize olanak tanır. SELECT yada UPDATE ifadeleri ile birlikte kullanılır. Case ifadesi IF gibi tek başına kullanılamaz.
CASE değer
WHEN değer THEN işlem
WHEN değer THEN işlem
ELSE işlem
END
declare @n1 int
set @n1=9
select sayi=case @n1
when 1 then 'bir'
when 2 then 'iki'
when 3 then 'üç'
when 4 then 'dört'
when 5 then 'beş'
else 'kayıtlarda yok' end
Yukarıdaki örnekte değişkenin değerine göre rakamları harfe çevirir
ogrenci tablomuza cinsiyet alanı ekleyelim.erkekler için e kızlar için k değerlerini girelim:
Burada case yi kullanarak alanların değiştirerek (e=erkek k=kız) yazalım
select ogr_ad,cinsiyet,cinsiyeti=case cinsiyet
when 'e' then 'erkek'
when 'k' then 'kız'
end
from ogrenci
While Döngüsü
Tekrar gerektiren işlemlerde istenilen şart gerçekleşinceye kadar işlem yapmaya
olanak sağlar. While ile bir işlemi istenilen kadar tekrarlatabilirsiniz. Genel yapısı şu
şekildedir:
WHILE şart
BEGIN
Tekrarlanması gereken kodlar
END
while döngüsü ile toplama işlemi yapalım;
Cdeclare @sayac int, @sayi int,@toplam int
set @toplam=0
set @sayi=10
set @sayac=0
while (@sayac<5)
begin
set @toplam=@toplam+@sayi
set @sayac=@sayac+1
print @toplam
end
|