Filtrer votre instruction CASE
Générons une liste des matchs remportés par l'équipe Bologna d'Italie! Les deux tables contiennent plusieurs autres équipes; pour créer une requête vraiment utile, l'élément clé sera d'utiliser votre instruction CASE comme filtre dans la clause WHERE.
Les instructions CASE vous permettent de catégoriser 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 la clause WHERE afin de retirer les résultats que vous ne voulez pas voir.
Voici comment vous pourriez configurer le tout :
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
Essentiellement, vous pouvez utiliser l'instruction CASE comme une colonne de filtrage, comme n'importe quelle autre colonne de votre base de données. La seule différence, c'est que vous ne donnez pas d'alias à l'instruction dans WHERE.
Cette activité fait partie du cours
Manipulation de données en SQL
Instructions de l’exercice
- Utilisez l'instruction
CASEdans la clauseWHEREpour filtrer les lignes oùhometeam_idest9857et où les buts à domicile sont supérieurs aux buts à l'extérieur. - Utilisez l'instruction
CASEdans la clauseWHEREpour filtrer les lignes oùawayteam_idest9857et où les buts à l'extérieur sont supérieurs aux buts à domicile. - Terminez l'instruction
CASEen excluant les matchs que Bologne n'a pas gagnés.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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 ___;