IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Usa l'istruzione CASE nella clausola WHERE per filtrare i casi in cui hometeam_id è 9857 e i gol in casa superano quelli in trasferta.
  • Usa l'istruzione CASE nella clausola WHERE per filtrare i casi in cui awayteam_id è 9857 e i gol in trasferta superano quelli in casa.
  • Concludi l'istruzione CASE escludendo 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 ___;
Modifica ed esegui il codice