SQL – CASE İfadesi ve Kullanımı – Ders 27

Eğer diğer programlama dilleri hakkında bilgi sahibi iseniz CASE konusunu kavramanız birkaç saniyenizi alacaktır. Fakat bu alanda öğrenmek istediğiniz ilk şey SQL ise konuyu dikkatli okumanızda fayda var. CASE ifadeleri programlamada sıkça kullanılan aynı şekilde veritabanı mimarisinde de yer alan durumlardır. Yapılmak istenen ise birden fazla koşul üzerinden işlem yapmak. Konuyu direkt teorik olarak anlatmak doğru olmaz, pratik olacak şekilde birkaç örnek çözmekte fayda var.

Syntax gösterimine baktığımız zaman CASE satırının altında WHEN ve THEN ifadelerini görüyoruz, CASE’in içindeki son satırda ise ELSE ifadesi mevcut. Son olarak END ile ifadeyi tamamlamış oluyoruz. Burada yapılmak istenen WHEN içindeki condition eğer doğruysa result1’i döndür. WHEN içindeki condition2 doğruysa result2’yi döndür. Eğer hiçbiri doğru değilse ELSE ‘de bulunan result’u döndür. Örneğimize bakalım.

Sorgumuz tam olarak ne yapıyor detaylı bir şekilde inceleyelim. Bu sorguda CASE kısmı ilk satırın sonundaki virgülden de anlayacağınız üzere, yeni bir sütun işlevi görecek. Yani OrderID ve Quantity gibi sütunlar ile birlikte bir de CASE-END içinde bulunan koşullara uygun şekilde bir sütun gelecek. Bu sütundaki kayıtlarda ise istenen şu:

  • Eğer Quantity 30’dan büyükse, “The quantity is greater than 30” o kayda ekle.
  • Eğer Quantity 30’a eşitse “The quantity is 30” yazısını o kayda ekle.
  • Eğer bu iki durum da sağlanmıyorsa “The quantity is under 30” yazısını o kayda ekle.
OKUMALISIN!  SQL - DELETE İfadesi ve Kullanımı - Ders 9

CASE ifademizi END ile kapatıp, hangi tabloda işlem yapacağımızı FROM ile seçtikten sonra sorguyu çalıştıralım ve sonucu görelim.

Gördüğünüz üzere 3. bir sütun oluşturdu ve şartları sağlayanlara göre sonuçları o sütunlara ekledi. Detaya inmeden aşağıdaki örneği de inceleyelim.

Burada ise ORDER BY içinde bir CASE kullanılmış. Peki amacımız ne? Bildiğiniz üzere ORDER BY kayıtları belirttiğiniz ASC veya DESC durumuna göre sıralayan bir ifadeydi. Fakat sıralama işlemi yaparken referans aldığı sütun veya sütunlar bulunuyordu. Örneğin CustomerName ‘e göre sıralıyorduk. Burada da hangi sütuna göre sıralanacağına dair bir CASE oluşturulmuş. Eğer kayıtlarda City sütununda NULL değer varsa ülkeye göre sırala, eğer yoksa şehre göre sırala denmiş.

1 Star2 Stars3 Stars4 Stars5 Stars (1 oylama, average: 5,00 out of 5)
Loading...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir