BaşlayınÜcretsiz başlayın

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

Kursa Göz Atın

Egzersiz talimatları

  • WHERE koşulunda CASE ifadesini kullanarak hometeam_id 9857 olan ve ev sahibi gollerin deplasman gollerinden fazla olduğu satırları filtrele.
  • WHERE koşulunda CASE ifadesini kullanarak awayteam_id 9857 olan ve deplasman gollerinin ev sahibi gollerinden fazla olduğu satırları filtrele.
  • Bologna'nın kazanmadığı maçları hariç tutarak CASE ifadesini 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 ___;
Kodu Düzenle ve Çalıştır