T-SQL Akış Kontrolleri

T-SQL Akış Kontrolleri Nedir? T-SQL de If - Else If - Else, While, Case Nasıl Kullanılır? T-SQL Akış Kontrolleri Örnekleri Nelerdir?

T-SQL Akış Kontrolleri

T-SQL Akış Kontrolleri

Tüm programlama dillerinde olduğu gibi T-SQL içerisinde de if, while vb. akış kontrolleri kullanılabilir.

If - Else If-  Else Kullanımı

IF (şart veya şartlar)
BEGIN
	T-SQL kodlar
END
ELSE IF (şart veya şartlar)
BEGIN
	T-SQL kodlar
END
		--------
ELSE
BEGIN
	T-SQL kodları
END

Örnek:

DECLARE @sayi1 INT, @sayi2 INT, @sayi3 INT

SET @sayi1 = 10
SET @sayi2 = 20
SET @sayi3 = 12

IF (
		@sayi1 > @sayi2
		AND @sayi1 > @sayi3
		)
BEGIN
	SELECT ('Sayı1  en büyük')
END
ELSE IF (
		@sayi2 > @sayi1
		AND @sayi2 > @sayi3
		)
BEGIN
	SELECT ('Sayı2 büyük')
END
ELSE
	SELECT ('Sayı3 büyük')

While Döngüsü

Bir kodun veya kod bloğunun koşul gerçekleştiği sürece tekrar çalıştırılmasını sağlar.

WHILE (şart veya şartlar)
BEGIN
	Kodlar
END

Örnek: 50 ile 250 arasındaki tek sayıların toplamını bulan T-SQL ifadesini yazalım.

DECLARE @sayac INT, @toplam INT

SET @sayac = 51
SET @toplam = 0

WHILE (@sayac < 250)
BEGIN
	SET @toplam = @toplam + @sayac
	SET @sayac = @sayac + 2
END

SELECT @toplam

Case Yapısı

Case yapısı T-SQL ifadelerinde birden fazla koşul gerektiren işlemlerin kullanımı için kullanılır.

CASE 
		WHEN (şart veya şartlar)
			THEN deger1
		WHEN (Şart veya şartlar)
			THEN deger2 ….
		ELSE deger_n
END

NOT: Case ifadesi tek başına If gibi T-SQL de kullanılamaz. Select ve Update komutlarıyla beraber kullanılır.

OgrDersleri

Örnek: Derslerin ortalamasını durumunu(Geçti/Kaldı) ve harf notunu (0-54 = DD, 55-69 = CC, 70-84 = DD, 85-100 = AA) şeklinde listeleyen T-SQL kodunu yazalım.

SELECT dadi, vize, final, (vize * 0.4 + final * 0.6) AS ortalama,
	CASE 
		WHEN (vize * 0.4 + final * 0.6) >= 55
			THEN 'Geçti'
		ELSE 'Kaldı'
		END AS Durumu,
	CASE 
		WHEN (vize * 0.4 + final * 0.6) > 0
			AND (vize * 0.4 + final * 0.6) < 55
			THEN 'DD'
		WHEN (vize * 0.4 + final * 0.6) >= 55
			AND (vize * 0.4 + final * 0.6) < 70
			THEN 'CC'
		WHEN (vize * 0.4 + final * 0.6) >= 70
			AND (vize * 0.4 + final * 0.6) < 85
			THEN 'BB'
		WHEN (vize * 0.4 + final * 0.6) >= 85
			AND (vize * 0.4 + final * 0.6) <= 100
			THEN 'AA'
		END AS HarfNotu
FROM OgrDersleri

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow