Sql Server

Sql Server switch-case Yapısı

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Sql Server’da switch-case yapısından bahsedeceğim. Hadi başlayalım !

Switch-case Yapısı

switch-case birçok programlama dilinde mevcut olan bir yapı ve tıpkı if-else gibi şart ifadeleri için kullanılmakta. Fakat if-else yapısından farklı olarak switch ile bir değişkenin değerinin kontrol edileceği belirtilip case içerisinde değişkenin değerleri kıyaslanır. Sql Server’da switch-case yapısının kuralı şu şekildedir;

case when şart_1 then yapılacak_işlem_1 when şart_2 then yapılacak_işlem_2 ... else yapılacak_işlem_n

Switch-case Çalışma Yöntemi

Burada bulunan şart_1 ve şart_2 alanlarına kontrol etmek istediğiniz şartı, yapılacak_işlem_1 ve yapılacak_işlem_2 kısmına ilgili şartın doğru olması durumunda yapılacak tek satırlık işlemi, hiç bir şart sağlanmazsa else içerisine düşeceğinden yapılacak_işlem_n kısmına ise hiç bir şartın geçerli olmadığı durumlarda yapılacak işlemi yazmanız gerekiyor. Ayrıca else yazmak zorunlu değil, herhangi bir şartın sağlanacağından kesin eminseniz yazmasanız da olur. Ayrıca şartların her biri farklı da olabilir. Örneğin bir tane case ile bir değişkeni, diğer case içerisinde başka bir değişkeni kontrol edebilirsiniz.

Örnek Kodlar

Örneğin bir tane stored procedure yazalım ve bu stored procedure içerisine gönderilen parametre sıfırdan küçükse Sayı Negatif, sıfırdan büyükse Sayı Pozitif, sıfıra eşitse de Sıfıra Eşit yazdıralım.

create procedure sayiKontrol @sayi int as
select case when @sayi < 0 then 'Sayı Negatif' when @sayi > 0 then 'Sayı Pozitif' else 'Sıfıra Eşit' end

Ayrıca bir veriye göre Sql sorgularını da şekillendirebiliriz. Örneğin int tipte id, varchar tipte kitapAdi ve int tipte sayfaSayisi sütunları bulunan kitaplar adında bir tablonun olduğunu varsayalım. Bu tabloya dışarıdan gelen verilere göre ekleme yapalım. Dışarıdan gelen sayfaSayisi değeri sıfırdan küçükse pozitife çevirerek yazdıralım. Bunu da stored procedure ile yapalım.

create procedure yeniKitapEkle @id int, @sayfaSayisi int, @kitapAdi char(100) as
insert into kitaplar(id, kitapAdi, sayfaSayisi) values(@id, @kitapAdi, case when @sayfaSayisi < 0 then abs(@sayfaSayisi) else @sayfaSayisi end)

Bunun gibi tüm Sql sorgularında case-when ile şarta bağlı veri seçimi yapabilir ve kullanabilirsiniz. Evet Sql Server’da switch-case yapısı bu şekilde. Tüm Sql Server yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

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

Başa dön tuşu