SQL Server Case When Kullanımı

Herkese merhaba,

Bu yazıda sizlere SQL Server’da Case When kullanımından bahsedeceğim.

SQL Server’da bazen bazı sütunlarda veriler anlamlı olmayabilir. Ne demek istediğimi açıklayayım. Misal bir tablomuz var ve bu tablodaki il verileri 01,02,03 gibi rakamsal girilmiş veriler olsun. Biz bu veriler üzerinde 01 değilde Adana olarak gözükmesini istiyoruz. İşte tam bu noktada bunu kullanacağız. Başka bir örnek daha verelim. Büyük bir veri tablomuz var. Bu tabloda erkeklere 0 kadınlara 1 değeri verilerek veri girişi yapılmış. Biz bu değerler karşısına 0 ise erkek, 1 ise kadın yazmasını istiyoruz. İşte bu noktada da bu ifadeyi kullanabiliriz. Ne demek istiyoruz bir örnekle açıklayalım.

CREATE TABLE SirketCalisanlar (
Id INT IDENTITY(1,1),
Ad NVARCHAR(50),
Ilce NVARCHAR(50)
)

Burada bir tablo oluşturuyoruz. Sonrasında ise içine veri ekleyeceğiz. Aşağıda kodlarını görmektesiniz.

INSERT INTO dbo.SirketCalisanlar
        ( Ad, Ilce )
VALUES  ( N'Yavuz', -- Ad - nvarchar(50)
          N'Bahçelievler'  -- Ilce - nvarchar(50)
          )

INSERT INTO dbo.SirketCalisanlar
        ( Ad, Ilce )
VALUES  ( N'Mustafa', -- Ad - nvarchar(50)
          N'Bakırköy'  -- Ilce - nvarchar(50)
          )

INSERT INTO dbo.SirketCalisanlar
        ( Ad, Ilce )
VALUES  ( N'Pelin', -- Ad - nvarchar(50)
          N'Bayrampaşa'  -- Ilce - nvarchar(50)
          )

INSERT INTO dbo.SirketCalisanlar
        ( Ad, Ilce )
VALUES  ( N'Büşra', -- Ad - nvarchar(50)
          N'Bayrampaşa'  -- Ilce - nvarchar(50)
          )

INSERT INTO dbo.SirketCalisanlar
        ( Ad, Ilce )
VALUES  ( N'Hasan', -- Ad - nvarchar(50)
          N'Bahçelievler'  -- Ilce - nvarchar(50)
          )

INSERT INTO dbo.SirketCalisanlar
        ( Ad, Ilce )
VALUES  ( N'Bilge', -- Ad - nvarchar(50)
          N'Bakırköy'  -- Ilce - nvarchar(50)
          )

Şimdi girdiğimiz verileri listeleyelim.

SELECT * FROM dbo.SirketCalisanlar

Görüldüğü üzere 6 adet kayıt geldi. Şimdi Case When sorgumuzu yazıyoruz.

SELECT ad,Ilce,
Yakınlıklar=CASE Ilce WHEN N'Bakırköy' THEN 'Merkeze Yakın'
                  WHEN N'Bahçelievler' THEN '1. Şubeye Yakın'
				  WHEN N'Bayrampaşa' THEN '3. Şubeye Yakın'
				  end

 FROM dbo.SirketCalisanlar

Burada Bakırköy olanlar için Merkeze Yakın, Bahçelievler olanlar için 1.Şubeye Yakın, Bayrampaşa olanlar için ise 3. Şubeye Yakın yazdırmış olduk.

Case When ifadesinin diğer bir kullanım şekli ise aşağıdaki gibidir.

 SELECT CASE WHEN Ilce=N'Bakırköy' THEN 'Merkeze Yakın'
             WHEN Ilce=N'Bahçelievler' THEN '1. Şubeye Yakın'
			 WHEN Ilce=N'Bayrampaşa' THEN '3. Şubeye Yakın'
			 END, ad,Ilce
             FROM SirketCalisanlar

Aynı sonucu almış olduk.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir