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
Instruções do exercício
- Use a instrução
CASEna cláusulaWHEREpara filtrar ondehometeam_idé9857e os gols em casa excedem os gols fora. - Use a instrução
CASEna cláusulaWHEREpara filtrar ondeawayteam_idé9857e os gols fora de casa excedem os gols em casa. - Termine a declaração do
CASEexcluindo 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 ___;