ÎncepețiÎncepe gratuit

Filtrarea instrucțiunii CASE

Hai să generăm o listă cu meciurile câștigate de echipa italiană Bologna! În cele două tabele există destul de multe echipe, așadar o parte esențială a interogării va fi utilizarea instrucțiunii CASE ca filtru în clauza WHERE.

Instrucțiunile CASE îți permit să clasifici datele care te interesează și să le excluzi pe cele care nu îți sunt utile. Pentru a face asta, poți folosi o instrucțiune CASE ca filtru în clauza WHERE și să elimini astfel rezultatele pe care nu vrei să le vezi.

Iată cum poți configura acest lucru:

SELECT *
FROM table
WHERE 
    CASE WHEN a > 5 THEN 'Keep'
         WHEN a <= 5 THEN 'Exclude' END = 'Keep';

Practic, poți folosi instrucțiunea CASE ca pe orice altă coloană de filtrare din baza ta de date. Singura diferență este că nu îi atribui un alias în WHERE.

Acest exercițiu face parte din cursul

Manipularea datelor în SQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește instrucțiunea CASE în clauza WHERE pentru a filtra cazurile în care hometeam_id este 9857 și golurile marcate acasă depășesc golurile oaspeților.
  • Folosește instrucțiunea CASE în clauza WHERE pentru a filtra cazurile în care awayteam_id este 9857 și golurile oaspeților depășesc golurile gazdelor.
  • Încheie instrucțiunea CASE excludând meciurile pe care Bologna nu le-a câștigat.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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 ___;
Editează și rulează codul