ПочатиПочніть безкоштовно

Фільтрування вашого виразу 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 ___;
Редагувати та запускати код