Sql – Select sorgusu içerisinde case işlemi

Ufak ama bazı anlarda can kurtaran minik bir sql sorgusunu şuraya bırakayım. Büyük ihtimalle çoğunuz kullanıyordur, ama bilmeyenlerde faydalanması açısından gelen değere göre bir sonuç dönen sql sorgusunu sizlerle paylaşıyorum.

Anlaması kolay olması açısından örnek olarak hepimizin yaşadığı, 0-100 arası bir sınav sonucuna göre alınan notu dönen bir sorgu paylaşıyorum.

select 
 CASE 
     WHEN AlinanNot =  0 THEN 'Sınava Girilmemiş'
     WHEN AlinanNot < 25 THEN '0 (Sıfır)'
     WHEN AlinanNot >= 25 and AlinanNot < 45 THEN '1 (Bir)'
     WHEN AlinanNot >= 45 and AlinanNot < 55 THEN '2 (İki)'
     WHEN AlinanNot >= 55 and AlinanNot < 70 THEN '3 (Üç)'
     WHEN AlinanNot >= 70 and AlinanNot < 85 THEN '4 (Dört)'
     WHEN AlinanNot >= 85 and AlinanNot <= 100 THEN '5 (Beş)'
     ELSE 'Değer hatalı'
  END
from SinavSonuclari

Görüldüğü gibi bu kadar basit ve kullanımı fazla olan bir sql kod bloğu.
Biraz daha karışık olması açısından, daha önceden girilen 05551234567 şeklindeki telefon numarasını 555.1234567 şekline çeviren sorguyu da ekleyeyim. .(Bu arada bunlar hep gerçek zamanlı olarak çalışırken karşılaşılabilecek şeyler, kullanırken arada ekliyorum 🙂 )

select 
CASE
	WHEN LEN(Replace(MobileNumber,' ','')) > 10 THEN SUBSTRING(Replace(MobileNumber,' ',''),2,3) +'.'+SUBSTRING(Replace(MobileNumber,' ',''),5,7)
	ELSE Replace(MobileNumber,' ','')
END
from users with (nolock)

İşlemlerin detayında ilk önce arada olabilecek boşlukları Replace() temizleyip, Len() ile 10 haneden büyükse kontrolü yaptım ve Substring() ile değeri parçalayıp kullandım. Zaten 10 haneden büyük değil ise bir işlem yapmama gerek yoktu.

Bir sorunuz olursa sormaktan çekinmeyin,
Mutlu günler !

Genel olarak web üzerine yoğunlaşan, gaza gelmek için müzik dinleyen, amatör olarak resim çekmeye çalışan, bir yandan özel bir şirkette çalışıp, diğer yandan da okumaya devam eden sıradan bir ölümlü. He bide buraların sahibi.

Leave a reply:

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.