Фільтрування вашого виразу CASE
Згенеруємо список матчів, які команда Bologna з Італії виграла! У двох таблицях є чимало інших команд, тож ключем до корисного запиту буде використання вашого виразу CASE як фільтра в клаузі WHERE.
Вирази CASE дають змогу категоризувати потрібні вам дані — і відкидати ті, що не потрібні. Щоб це зробити, можна застосувати вираз CASE як фільтр у виразі WHERE, щоб прибрати з результату виведення те, що ви не хочете бачити.
Ось як це можна налаштувати:
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
По суті, ви можете використовувати вираз CASE як фільтрувальний стовпець, як і будь-який інший стовпець у вашій базі даних. Єдина відмінність — ви не задаєте для цього виразу псевдонім у WHERE.
Ця вправа є частиною курсу
Маніпулювання даними в SQL
Інструкції до вправи
- Використайте вираз
CASEу клаузіWHERE, щоб відфільтрувати випадки, деhometeam_idдорівнює9857і домашні голи перевищують гостьові. - Використайте вираз
CASEу клаузіWHERE, щоб відфільтрувати випадки, деawayteam_idдорівнює9857і гостьові голи перевищують домашні. - Завершіть вираз
CASE, виключивши ігри, які Bologna не виграла.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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 ___;