SQL Server’da Case When Kullanımı
Herkese merhaba,
Bu yazıda sizlere SQL Server’da Case When kullanımı ile ilgili bilgi vereceğ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.