ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Utiliza la declaración CASE en la cláusula WHERE para filtrar cuando hometeam_id sea 9857 y los goles marcados en casa superen a los marcados fuera.
  • Utiliza la sentencia CASE en la cláusula WHERE para filtrar cuando awayteam_id sea 9857 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 ___;
Editar y ejecutar código