İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL

SQL Case When Kullanımı

SQL Case When Kullanımı
+ - 2

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. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. 1 sene önce

    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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.