SQL Server’da Case When Then End Yapısı

Herkese merhaba,

Bu yazıda SQL Server’da Case When Then End yapısı hakkında bilgi vereceğim.

SQL Server’da if koşulunun fazla kullanılması gereken durumlarda ya da kod karmaşasından kurtulmak için kullanılan bir yapıdır.

Kullanım yerlerine kısaca değinecek olursak, yurtdışından gelen veriler İngilizce ve bunları Türkçe’ye çevirip raporlama yapmak isteyebiliriz. Aynı zamanda belli kriterlere göre istediğimiz yazıyı döndürebiliriz. Bu gibi durumlarda Case When Then End yapısını kullanmak çok işinize yarayacaktır.

  • Case When Then in sonunda kesinlikle End olur.
  • If gibi bütün ihtimalleri tek tek dolanmaz, direk veriyi alıp sonucu verir.
  • When tarafında yazdığınız sorguyu Then’de dönecek veri için bir koşul olarak düşünebilirsiniz.
  • Case ile End arasında yazdığımız sorgu ayrı bir kolonda yazdırılır. Veritabanında böyle bir kolon olmayıp raporlama için kullanılır.
  • END as diyerek kolona Alias yani takma ad verebilirsiniz.

Aşağıdaki örnek üzerinden siz de bu işlemi rahatlıkla anlayabilirsiniz. Ben örnek olması açısından Northwind veritabanını kullandım.

SELECT FirstName + ' ' + LastName AS FullName,
       Country,
       CASE
           WHEN Country = 'usa' THEN
               'Amerika'
           WHEN Country = 'uk' THEN
               'Birleşik Krallık'
           WHEN Country = 'France' THEN
               'Fransa'
           ELSE
               'Bilinmiyor'
       END AS TürkçeÜlkeAdi
FROM Employees;

Yukarıdaki kodu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

Görüldüğü üzere Northwind veritabanında çalışanlar tablosundaki ülkeler kolonunun Türkçesini döndüren bir sorgu yazmış olduk.
ELSE’in anlamı sorgulanan ülkeler dışında tabloda herhangi bir veri varsa “Bilinmiyor” yazdırılacak.

Aşağıda başka bir kullanım örneği daha göreceksiniz.

SELECT ProductName,
       UnitsInStock,
       CASE
           WHEN UnitsInStock <= 50 THEN 'Kritik Stok' WHEN UnitsInStock BETWEEN 51 AND 75 THEN 'Normal' WHEN UnitsInStock > 75 THEN
               'Stok fazlası'
       END AS 'Stok Durumu'
FROM Products;

Yukarıdaki kodu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da Case When Then End Yapısı

Görüldüğü üzere Northwind veritabanındaki Ürünler tablosundaki stok miktarına göre raporlama yapıldı. Stok miktarı 50 ve altında olursa “Kritik Stok”, 51 ile 75 arası “Normal”, 75’ten fazla ise “Stok Fazlası” yazdıracak.Sorgu sonucu dönen kolon adını da “Stok Durumu” olarak belirttik.

Görüldüğü üzere Case When Then End yapısının nasıl kullanılacağını öğrenmiş olduk.

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

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

Aşağıdaki Yazılar da İlginizi Çekebilir

Yazı kopyalamak yasaktır!