CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Utilisez l'instruction CASE dans la clause WHERE pour filtrer les lignes où hometeam_id est 9857 et où les buts à domicile sont supérieurs aux buts à l'extérieur.
  • Utilisez l'instruction CASE dans la clause WHERE pour filtrer les lignes où awayteam_id est 9857 et où les buts à l'extérieur sont supérieurs aux buts à domicile.
  • Terminez l'instruction CASE en 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 ___;
Modifier et exécuter le code