SQL Server’da Karar İfadeleri ve Döngü Kullanımı. T-SQL komutlarında bazen bir ifadeyi bir koşula dayandırarak çalıştırma ihtiyacı duyabiliriz. Bu durumlarda karar ifadeleri ve döngüler yardımımıza koşar. Karar ifadeleri ve döngüler yardımıyla belli bir ifadeyi belli bir sayıda veya belli bir koşul gerçekleşinceye kadar çalıştırabiliriz. Peki bunlar nelerdir, kısaca inceleyelim.
IF-ELSE Döngüsü
Karar ifadelerinin en basiti ve en çok kullanılanıdır. IF komutunu izleyen boolean ifade TRUE olursa takip eden ifadeler, FALSE olursa ELSE komutundan sonra gelen ifadeleri gerçekleştirecektir. IF kullanımında iç içe IF blokları da kullanabiliriz.
Bir örnekle inceleyelim.
Resim-1
IF EXISTS Döngüsü
Bu komut ile de bir kaydın var olup olmadığını sorgularız. Daha çok database’de bir objenin var olup olmadığını sorgulamak istediğimiz zaman kullandığımız bir komuttur.
Resim-2
CASE
Birden çok boolean deyimlerini karşılaştırmalı olarak tek bir ifade içinde belirtmemize olanak tanır. Select, update gibi ifadeler ile birlikte kullanılır. CASE ifadesi komut değil bir işlev olduğu için IF komutunda olduğu gibi tek başına kullanılmaz.
Resim-3
WHILE
C# da yazılım yaparken kullanılan Foreach döngüsünün SQL Server’daki karşılığı WHILE döngüsü diyebiliriz. İfadelerin belli bir koşul gerçekleşinceye kadar çalışmasını sağlar. Döngü ancak ilgili koşulun TRUE veya FALSE olması ile birlikte durdurulabilir. Eğer şart belirlenmeden bir WHILE döngüsü oluşturulursa döngü sonsuz döngü olur.
IF kullanımında iç içe IF blokları kullanabildiğimiz gibi, WHILE döngüsü içinde de bir WHILE döngüsü oluşturabiliriz. Bunu yapabildiğimiz gibi WHILE döngüsü içinde de IF blokları oluşturabiliriz ya da tam tersi IF blokları içinde de WHILE döngüleri oluşturabiliriz.
İlk örneğimizde 1’den 10’a kadar sayıları WHILE döngüsü ile ekrana yazdıralım.
Resim-4
Diğer örneğimizde ise WHILE döngüsü ile ürün kod değeri çift sayi olan ürünlerin ad, ürün kodu ve renk bilgilerini ekrana yazdıralım.
Resim-5
CURSOR KULLANIMI
SQL Server’da bir sorgu sonucu dönen kayıtlar üzerinde satır bazlı işlem yapmak için CURSOR kullanırız. CURSOR hangi satır üzerinde ise o satırda bulunan veriler ile işlem yaparız. CURSOR kullandığımız Select cümlesinde dönen her kayıt bir değişkene atanmalıdır. Select cümlesinden hangi veri tipinde ne kadar kayıt dönecek ise o kayıt sayısı kadar aynı veri tiplerinde değişkenler tanımlarız.
CURSOR kayıtlar üzerinde dolaşmaya başlamadan önce Open komutu ile açarız, Fetch Next komutu ile kayıtlar üzerinde ilerleriz, kayıtlar ile ilgili işlemler bittikten sonra ise Close komutu ile kapatırız.
Bir örnek ile inceleyelim.
Örneğimizde DimGeography tablosundan aldığımız key alanı ile DimCustomer
tablosu üzerinde sorgu çalıştırıyoruz ve o key alanına ait olan bölgelerdeki müşteri sayısını alıp Customer_Count tablomuza ekliyoruz.
Resim-6
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
resim koyacağınıza kodları paylaşsanız daha iyi olurdu
Teşekkürler, çok faydalı oldu. Kolay gelsin…