ComeçarComece de graça

Filtrando seu comando CASE

Vamos gerar uma lista de partidas vencidas pelo Bologna da Itália! Há vários outros times nas duas tabelas, portanto, para gerar uma consulta que traga o resultado que você quer, é preciso usar a declaração CASE como um filtro na cláusula WHERE.

Os comandos CASE permitem que você categorize os dados nos quais está interessado e exclua os que não interessam. Para fazer isso, você pode usar um comando CASE como um filtro na cláusula WHERE para retornar apenas o que deseja ver.

Veja como você pode configurar isso:

SELECT *
FROM table
WHERE 

    CASE WHEN a > 5 THEN 'Keep'

         WHEN a <= 5 THEN 'Exclude' END = 'Keep';

Basicamente, você pode usar o comando CASE como uma coluna de filtragem, como qualquer outra coluna no seu banco de dados. A única diferença é que você não usa o alias do comando na cláusula WHERE.

Este exercício faz parte do curso

Manipulação de dados em SQL

Ver curso

Instruções do exercício

  • Use a instrução CASE na cláusula WHERE para filtrar onde hometeam_id é 9857 e os gols em casa excedem os gols fora.
  • Use a instrução CASE na cláusula WHERE para filtrar onde awayteam_id é 9857 e os gols fora de casa excedem os gols em casa.
  • Termine a declaração do CASE excluindo os jogos que o Bologna não venceu.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 ___;
Editar e executar o código