T-SQL-2.Konu Akış Kontrolleri
Programlama dillerinde olduğu gibi SQL Server da da koşul yapıları bulunmaktadır. Koşul yapıları belirtilen duruma göre birden fazla olduğu durumlarda BEGIN… END bloğu arasına yazılır.
IF …. ELSE YAPISI Bizim belirttiğimiz şartları kontrol eder. Bu şartların doğru olması halinde farklı işlemler, yanlış olması halinde farklı işlemler yapılmasını sağlar. Genel kullanımı şu şekildedir:
IF(Sart1) BEGIN İslemleriniz END ELSE IF(Sart2) ELSE
Örnek: Tabloya göre bayanların sayısını bularak istenilen mesajı veren sorguyu yazın.
Dikkat IF … ELSE yapısından True ya da False içeren Boolean değeri döner. Bu yapının koşul ifadesi kısmında örnekte olduğu gibi SELECT ifadesi kullanılabilir. Ancak SELECT ifadesi kullanıldığında koşul kısmı parantez içinde olmalıdır ve sorgudan tek bir değer dönmelidir.
Exists ?
Soru: Tabloya göre maaşı 2000 e den az ya da eşit olan personel olup olmadığı bilgisini veren sorguyu yazın.
Soru: Urun tablosundaki urunlerin fiyatlarına göre en yüksek fiyatlı urunun ne tür bir ürün olduğu mesajını veren kodları yazın. (Bilgisayar malzemesi, cep telefonu Ipad vb. Gibi)
Soru: Urun tablosundaki urunlerin fiyatlarına göre en yüksek fiyatlı urunun ne tür bir ürün olduğu mesajını veren ve bu ürünün ne olduğunu gösteren kodları yazın. (Bilgisayar malzemesi, cep telefonu Ipad vb. Gibi)
Soru: Marka tablosunu kullanarak toplam markaya göre marka sayısı 100e eşit ve 100 den küçük ise Daha fazla marka olmalı büyük ise Yeterli sayıda marka mevcut mesajını veren ve marka sayısını gösteren kodlar
CASE YAPISI SQL Serverda case fonksiyonu sorgu sonucu dönen bir kolonun degerine göre farkli islemler yapabilmemize olanak saglar. Istedigimiz bir kolonun degerini belirli sartlari kontrol ederek yeni bir degerle degistirmek için kullanabiliriz. Genel kullanımı şu şekildedir: CASE WHEN şart THEN değer END Şu şekilde de kullanılabilir: SELECT sutunAdi=case ifadesi FROM tabloAdi WHERE sutunAdi=case ifadesi ORDER BY case ifadesi
Urunkodlarına göre urunleri gruplandırarak listefiyatlarına göre satışın nasıl olduğunu yazdıran kodlar
Örnek: Ornek tabloya göre tablodaki urunlerin geliş tarihlerine bakarak o tarihteki birim fiyatları nı gösteriniz.
Soru: Tblbilgi tablosu kullanılarak maas bilgisi verilen personelin maasları aşağıdaki şekilde güncellenmiştir. Bu güncellemeyi yapınız. Maaş bilgisi, 1500 den az olan 0,3 oranında artış 1500 ve 2500 arasında olan 0,2 oranında 2500 den daha büyük olan 0,1 oranında yapılan artışları gösteriniz.
WHILE DÖNGÜSÜ, BREAK VE CONTINUE SQL de kullanılan WHILE döngüsü tekrarlanması gereken işlemlerde istenilen şart gerçekleşinceye dek işlem yapmaya olanak sağlar. WHILE şart BEGIN Tekrarlanması gereken kodlar END
Örnek: 5 er 5 er artırma
Örnek: 1- ile 5 arasındaki sayıların karesini gösteren kodlar
Bilgi tablosu kullanılarak çalışanların ortalama maaşları göz önünde bulundurulduğunda maaş ortalaması 2000 den az ise personelin maaşına %20 zam yapan kodları while kullanarak yazın.
Break: Break komutu While döngüsünden bir uç şarttan dolayı çıkmak üzere kullanılır. BREAK ile WHILE döngüsünden çıkıldığında, WHILE in END ini takip eden kodlardan devam edilir.
Continue Break komutu gibi, WHILE döngüsünde bir uç şartı kontrol etmek için kullanılır. Ancak bu komut, break in aksine WHILE yapısının başlangıcına götürür ve eldeki değerlerle oradan programın devam etmesini sağlar. Sonuçta continue deyiminden döngünün sonuna kadar olan kısım bir defaya mahsus çalıştırılmadan geçilmiş olur.
Aynı örnekte continue yerine break yazarak sonuca tekrar bakın