CommencerCommencer gratuitement

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

Afficher le cours

Instructions

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