SQL Case When Kullanımı , yazısı ile SQL eğitim setime devam ediyorum arkadaşlar. Bu yazımızda C# ‘taki if else ye benzer bir yapı olan SQL Case When yapısını anlatmaya çalışacağım. Gelin SQL Case When Kullanımı dersimizde geçelim.
SQL Case When Kullanımı
Dediğim gibi C# üzerinden bakarsak if else yapısına benzer bir yapıdadır. Daha net anlayabilmeniz için hemen sorgu üzerinde görelim.
Eski projelerimden birinde yazdığım bir sorguyu vereceğim.
SELECT [Stok_Hareket_RECno] AS KAYITNO , [Stok_Hareket_Stok_Kodu] AS STOK_KODU ,(SELECT Stok_Adi FROM STOK_TANIMLARI where Stok_RECno = Stok_Hareket_Stok_Kodu) AS STOK_ADI ,Stok_Hareket_Tur as HAREKET_TÜRÜ ,[Stok_Hareket_Tarih] AS HAREKET_TARİHİ , case WHEN Stok_Hareket_Giris_Cikis = 0 then 'ÇIKIŞ' else 'GİRİŞ' end AS GİRİŞ_ÇIKIŞ ,[Stok_Hareket_Adet] AS MİKTAR ,(SELECT Stok_Urun_Fiyati FROM STOK_TANIMLARI where Stok_Kodu=Stok_Hareket_Stok_Kodu) * Stok_Hareket_Adet as TUTAR ,[Kayit_Tarih] AS KAYIT_TARİH FROM [dbo].[STOK_HAREKETLERİ] where Aktif = 1 and Stok_Hareket_Tur = 'Sayım Fişi' ORDER BY STOK_ADI asc
Hemen case when kısmını alalım ve inceleyelim.
, case WHEN Stok_Hareket_Giris_Cikis = 0 then 'ÇIKIŞ' else 'GİRİŞ' end AS GİRİŞ_ÇIKIŞ
CASE komutunun tam anlamını bilmiyorum ki aslında pek gerek yok. Olayımız WHEN ‘den sonra başlıyor.
When Stok_Hareket_Giris_Cikis kolonunda yer alan veri 0 (Sıfır) ise ÇIKIŞ yaz değil ise GİRİŞ yaz ve kolon başlığını da GİRİŞ_ÇIKIŞ olarak değiştir.
Evet bu satırın açıklaması bu şekilde. Buradan birden fazla when yazabiliriz. Burada yazabileceğimiz When’in bir sınırı yoktur. Birden fazla When içeren bir sorgu daha yazalım.
Case satırını birden fazla When kullanım şeklini anlatabilmek için biraz sallama yaptım.
, case WHEN Stok_Hareket_Giris_Cikis = 0 then 'Değer0' WHEN Stok_Hareket_Giris_Cikis = 1 then 'Değer1' WHEN Stok_Hareket_Giris_Cikis = 2 then 'Değer2' WHEN Stok_Hareket_Giris_Cikis = 3 then 'Değer3' WHEN Stok_Hareket_Giris_Cikis = 4 then 'Değer4' else '' end AS GİRİŞ_ÇIKIŞ
Şimdi sorguya bakarsak.
When, Ne Zaman demektir. Burada Eğer olarak kullanacağız.
Eğer (When) Stok_Hareket_Giris_Cikis kolonundaki veri 0 (sıfır) ise (Then) ekrana “Değer0” yaz
Eğer (When) Stok_Hareket_Giris_Cikis kolonundaki veri 1 (bir) ise (Then) ekrana “Değer1” yaz
Eğer (When) Stok_Hareket_Giris_Cikis kolonundaki veri 2 (iki) ise (Then) ekrana “Değer2” yaz
Eğer (When) Stok_Hareket_Giris_Cikis kolonundaki veri 3 (üç) ise (Then) ekrana “Değer3” yaz
Eğer (When) Stok_Hareket_Giris_Cikis kolonundaki veri 4 (dört) ise (Then) ekrana “Değer4” yaz
Hiçbiri değil ise hiçbir şey yazma dedik.
En kısa ve öz olarak anlatım ile bu kadardı dostlar. Diğer derslerimizde görüşmek üzere…
Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.
Sağlıcakla ve Takipte Kalın.
selam hocam
sum fonksiyonu ile toplama yaparken şart eklemek istiyorum
SUM(umsatz) eğer art=B ise demek istiyorum
| id | tarih | umsatz | netto | kart | art |
………………………………………………….
1 29.08.23 29.50 29 1 B
2 29.08.23 39.50 30 0 F
3 29.08.23 19.50 18.50 1 B
4 28.08.23 9.50 9 0 F
5 28.08.23 8.30 8.2 1 B
teşekkürler
Merhaba,
Sorguyu normal yaz sonuna where ekle. Bu kadar basit aslında.
select sum(umsatz) as toplam from Tablo where art = 'B'
sadece Art = B olanların toplamını verir.