MICROSOFT SQL SERVER

Ders Notları

 

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

 

 

ÖNCEKİ KONU   SONRAKİ KONU

 

Web hosting by Somee.com