Programlama dillerinden bildiğimiz while döngüsü T-SQL de koşul gerçekleştiği sürece kod bloğunun tekrar çalıştırılmasını sağlar.
1 2 3 4 5 |
WHILE KOSUL_IFADESI BEGIN TEKRARLANACAK KODLAR .... END |
Kullanım şekli yukarıda ki gibi olan While döngüsünde tek komut içeriyorsa BEGIN ve END ifadelerien ihtiyaç duyulmaz.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECT CAST(AVG(BAKIYE) AS VARCHAR(10)) AS 'Eski Ortalama Maaş' FROM HESAPLAR --BAKIYE sütünunun ortalamasını al(AVG) ve karaktere dönüştür(CAST(.... as VARCHAR(10))) Eski Ortalama Maaş sütununda yayınla( ...... AS 'Eski Ortalama Maaş') WHILE (SELECT AVG(BAKIYE) FROM HESAPLAR) < 5000 --BAKIYE ortalaması(AVG) 5000den küçük olduğu sürece BEGIN --1den fazla kod satırı var UPDATE HESAPLAR SET BAKIYE=BAKIYE*1.50 --BAKIYE sütununun %50 sini üstüne ekle SELECT * FROM HESAPLAR -- tüm tabloyu göster IF (SELECT MIN(BAKIYE) FROM HESAPLAR) < 5000 --En küçük(MIN) BAKIYE 5000'den küçük ise CONTINUE --Döngünün başına geç IF (SELECT MAX(BAKIYE) FROM HESAPLAR) >8000 --En büyük(MAX) BAKIYE 8000'den büyük ise BREAK --Döngüden çık END SELECT CAST(AVG(BAKIYE) AS VARCHAR(10)) AS 'Güncel Ortalama Maaş'FROM HESAPLAR --güncel tablo |
Yukarıda ki kod bloğunda ortalama maaşı 5000 üzerine olana kadar WHILE döngüsünün çalıştığı görünmektedir. AVG fonksiyonu ile BAKIYE sütunun ortalaması alınarak bu denetim gerçekleşmektedir. CONTINUE ifadesi ile şart sağlanması durumunda döngünün başına geçer. BREAK ifadesi ile şart sağlanması halinde döngüden tamamen çıakr ve sonra ki satırın işlemlerine başlar.