Filtrar tu sentencia CASE
Generemos una lista de partidos ganados por el equipo Bologna de Italia. Hay bastantes equipos adicionales en las dos tablas, por lo que será clave para generar una consulta útil utilizar tu sentencia CASE
como filtro en la cláusula WHERE
.
Las sentencias CASE
te permiten categorizar los datos que te interesan y excluir los datos que no te interesan. Para ello, puedes utilizar una sentencia CASE
como filtro en la sentencia WHERE
para eliminar el resultado que no quieras ver.
A continuación te explicamos cómo puedes configurarlo:
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
Básicamente, puedes utilizar la sentencia CASE
como columna de filtro, como cualquier otra columna de tu base de datos. La única diferencia es que no asignas alias a la sentencia en WHERE
.
Este ejercicio forma parte del curso
Manipulación de datos en SQL
Instrucciones del ejercicio
- Utiliza la declaración
CASE
en la cláusulaWHERE
para filtrar cuandohometeam_id
sea9857
y los goles marcados en casa superen a los marcados fuera. - Utiliza la sentencia
CASE
en la cláusulaWHERE
para filtrar cuandoawayteam_id
sea9857
y los goles fuera superen a los goles en casa. - Termina la declaración de
CASE
excluyendo los partidos que no ganó Bolonia.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
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 ___;