Filtrage de votre instruction CASE
Nous allons générer la liste des matchs gagnés par l’équipe italienne de Bologne. Les deux tables comportent de nombreuses autres équipes, si bien que pour obtenir une requête utilisable, vous allez devoir utiliser votre instruction CASE
comme filtre dans la clause WHERE
.
L’instruction CASE
vous permet de classer les données qui vous intéressent et d’exclure celles qui ne vous intéressent pas. Pour ce faire, vous pouvez utiliser une instruction CASE
comme filtre dans l’instruction WHERE
afin de supprimer la sortie que vous ne souhaitez pas voir.
Voici comment vous pouvez procéder :
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
Vous pouvez utiliser l’instruction CASE
comme colonne de filtrage, comme n’importe quelle autre colonne de votre base de données. La seule différence est que vous ne créez pas d’alias pour l’instruction dans WHERE
.
Cet exercice fait partie du cours
Manipulation de données en SQL
Instructions
- Utilisez l'instruction
CASE
dans la clauseWHERE
pour filtrer lorsquehometeam_id
est9857
et que les buts marqués à domicile sont supérieurs aux buts marqués à l'extérieur. - Utilisez l'instruction
CASE
dans la clauseWHERE
pour filtrer lorsqueawayteam_id
est9857
et que les buts marqués à l'extérieur dépassent les buts marqués à domicile. - Terminez la déclaration
CASE
en excluant les matchs que Bologne n'a pas gagnés.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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 ___;