Kom igångKom igång gratis

Filtrera ditt CASE-uttryck

Nu ska vi skapa en lista över matcher som det italienska laget Bologna har vunnit! Det finns ganska många lag i de två tabellerna, så en viktig del av att bygga en användbar fråga är att använda CASE-uttrycket som ett filter i WHERE-satsen.

Med CASE-uttryck kan du kategorisera de data du är intresserad av – och utesluta det du inte behöver. För att göra det kan du använda ett CASE-uttryck som filter i WHERE-satsen och på så sätt ta bort utdata du inte vill se.

Så här kan det se ut:

SELECT *
FROM table
WHERE 
    CASE WHEN a > 5 THEN 'Keep'
         WHEN a <= 5 THEN 'Exclude' END = 'Keep';

I praktiken kan du använda CASE-uttrycket som en filtreringskolumn precis som vilken annan kolumn som helst i din databas. Den enda skillnaden är att du inte aliaserar uttrycket i WHERE.

Den här övningen är en del av kursen

Datahantering i SQL

Visa kurs

Övningsinstruktioner

  • Använd CASE-uttrycket i WHERE-satsen för att filtrera där hometeam_id är 9857 och hemmalagen gjort fler mål än bortalagets.
  • Använd CASE-uttrycket i WHERE-satsen för att filtrera där awayteam_id är 9857 och bortalaget gjort fler mål än hemmalagen.
  • Avsluta CASE-uttrycket genom att utesluta matcher som Bologna inte vann.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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 ___;
Redigera och kör kod