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
Övningsinstruktioner
- Använd
CASE-uttrycket iWHERE-satsen för att filtrera därhometeam_idär9857och hemmalagen gjort fler mål än bortalagets. - Använd
CASE-uttrycket iWHERE-satsen för att filtrera därawayteam_idär9857och 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 ___;