CASE ifadenini filtrelemek
Hadi İtalya'nın Bologna takımının kazandığı maçların bir listesini oluşturalım! İki tabloda epey fazla takım var, bu yüzden kullanılabilir bir sorgu yazmanın kilit noktası, CASE ifadesini WHERE koşulunda bir filtre olarak kullanmak olacak.
CASE ifadeleri, ilgilendiğin verileri kategorize etmene ve ilgilenmediklerini hariç tutmana olanak tanır. Bunu yapmak için, görmek istemediğin çıktıları kaldırmak üzere WHERE ifadesinde bir filtre olarak CASE ifadesini kullanabilirsin.
Bunu şöyle kurabilirsin:
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
Özetle, CASE ifadesini veritabanındaki diğer sütunlar gibi bir filtreleme sütunu olarak kullanabilirsin. Tek fark, WHERE içinde ifadeye takma ad (alias) vermemen gerektiğidir.
Bu egzersiz, kursun bir parçasıdır
SQL ile Veri İşleme
Egzersiz talimatları
WHEREkoşulundaCASEifadesini kullanarakhometeam_id9857olan ve ev sahibi gollerin deplasman gollerinden fazla olduğu satırları filtrele.WHEREkoşulundaCASEifadesini kullanarakawayteam_id9857olan ve deplasman gollerinin ev sahibi gollerinden fazla olduğu satırları filtrele.- Bologna'nın kazanmadığı maçları hariç tutarak
CASEifadesini bitir.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
SELECT
season,
date,
home_goal,
away_goal
FROM matches_italy
WHERE
-- Find games where home_goal is more than away_goal
___ ___ hometeam_id = 9857 ___ home_goal ___ away_goal ___ 'Bologna Win'
-- Find games where away_goal is more than home_goal
___ awayteam_id = 9857 ___ away_goal ___ home_goal ___ 'Bologna Win'
-- Exclude games not won by Bologna
___ IS NOT ___;