Filtrare la tua istruzione CASE
Generiamo un elenco delle partite vinte dal Bologna! Nelle due tabelle ci sono diverse altre squadre, quindi una parte fondamentale per ottenere una query utile sarà usare l'istruzione CASE come filtro nella clausola WHERE.
Le istruzioni CASE ti permettono di categorizzare i dati che ti interessano — ed escludere quelli che non ti interessano. Per farlo, puoi usare un'istruzione CASE come filtro nella clausola WHERE per rimuovere i risultati che non vuoi vedere.
Ecco come potresti impostarla:
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
In sostanza, puoi usare l'istruzione CASE come una colonna di filtro, proprio come qualsiasi altra colonna del tuo database. L'unica differenza è che non assegni un alias all'istruzione in WHERE.
Questo esercizio fa parte del corso
Manipolazione dei dati in SQL
Istruzioni dell'esercizio
- Usa l'istruzione
CASEnella clausolaWHEREper filtrare i casi in cuihometeam_idè9857e i gol in casa superano quelli in trasferta. - Usa l'istruzione
CASEnella clausolaWHEREper filtrare i casi in cuiawayteam_idè9857e i gol in trasferta superano quelli in casa. - Concludi l'istruzione
CASEescludendo le partite che il Bologna non ha vinto.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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 ___;