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.

751 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!