SQL Serverda While Döngüsünün Kullanimi

Sql Serverda bazen while döngüsünü kullanma ihtiyaci duyariz. Bu makalemizde while döngüsünü basitçe anlatip bir örnek yapacagiz.

While döngüsünün yapisi

WHILE Boolean_ifadesi

    {sql_ifadesi | ifade_blogu}

    [BREAK]

    {sql_ifadesi | ifade_blogu}

    [CONTINUE]


.
Açiklamalar:

Boolean_ifadesi:

            Dogru veya yanlis deger döndüren ifade. Boolean_ifadesi bir select sorgusu içerir,select sorgusu parantez içinde yazilmalidir.

{Sql_ifadesi | ifade_blogu}

            BEGIN ve END bloklari arasina yazilmis bir T_SQL ifadesi

BREAK

            While döngüsünü istedigi zaman sonlandirmak için kullanilir. END cümlesinden sonra yazilan ifadelere geçer.

CONTINUE

            While döngüsünün basina gider, CONTINUE kelimesinden sonra yazilan ifadeler çalismaz.

Not: Eger iç içe iki adet while döngüsü varsa, içerdeki döngüde kullanilan bir BREAK komutu sadece içteki döngüyü sonlandirir ve distaki döngü çalismasina devam eder.

While döngüsü ile ilgili yukaridaki ifadeleri içeren basit bir örnek verelim. Urun fiyatlarini tutan bir tablomuz olsun. Tüm ürünlerin fiyat ortalamalarini kontrol edelim eger yirminin altinda ise ürün fiyatini ikiye katlayalim. Tüm ürünlerin fiyatlarinin ortalamasi yirminin üstüne çikana kadar döngümüz devam etsin. While döngüsü içindeki kisimda ürün fiyatini ikiye katladiktan sonra tabloda bulunan en pahali ürünü bulup 60 dan büyük mü diye bakalim eger büyükse döngüyü BREAK ile sonlandiralim degil ise CONTINUE ile döngüye devam edelim.

 

create table #Urun

(

      Fiyat int

)

insert into #Urun(Fiyat) values(15)

insert into #Urun(Fiyat) values(25)

insert into #Urun(Fiyat) values(10)

insert into #Urun(Fiyat) values(30)

insert into #Urun(Fiyat) values(5)

insert into #Urun(Fiyat) values(35)

insert into #Urun(Fiyat) values(3)

 

GO

 

WHILE (SELECT AVG(Fiyat) FROM #Urun) < 20

BEGIN

    UPDATE #Urun

            SET Fiyat = Fiyat * 2

            SELECT MAX(Fiyat) FROM #Urun

    IF (SELECT MAX(Fiyat) FROM #Urun) > 60

        BREAK

    ELSE

        CONTINUE

END

 

Yukaridaki örnekte gördügünüz Boolean ifadesinde olarak bir select sorgusu kullandik. Peki, daha önceden tanimladigimiz bir degiskeni nasil kullaniriz. Bu örnegimizde iki sayi arasinda kalan tüm sayilari üretip bunlardan çift olanlari bir tabloya yazalim.

create table #Sayilar

(

      Sayi int

)

declare @i bigint

set @i = 125

 

while(@i <=652)

begin

if @i%2 = 0 –sayi çiftmi

      insert into #Sayilar values(@i)

 

set @i = @i+1

end

 

Yukaridaki sorgu 125 ile 652 arasinda kalan çift sayilari #Sayilar isimle geçici tabloya atar.

While döngüsü ile ilgili sorularinizi forum üzerinden takip edebilir sorularinizi forum üzerinden sorabilirsiniz.

 

 

 

2 thoughts on “SQL Serverda While Döngüsünün Kullanimi

  1. Hocam bir sorum olacakti 
    Sql server icinde bir store prosedurum var bununla birkac tablodan degerleri cekiyorum.Ayni store prosedurun icinde dongu kurup bunu da bir kolon olarak gostermem mumkun mudur? Bu konuda ornek verebilir misiniz?

  2. Sizden bir istegim olacak sql e daha yeni basladim hoca upper komutunu kullanmadan küçük harfleri büyüge çeviren program kodlarini istiyor eger yardimci olursaniz sevinirim.Simdiden tesekkür ederim.

Guests için bir cevap yazın Cevabı iptal et

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