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
CASE
na cláusulaWHERE
para filtrar ondehometeam_id
é9857
e os gols em casa excedem os gols fora. - Use a instrução
CASE
na cláusulaWHERE
para filtrar ondeawayteam_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 ___;