CASE 문 필터링하기
이탈리아의 Bologna 팀이 승리한 경기 목록을 만들어 봅시다! 두 테이블에는 다양한 팀이 포함되어 있으므로, 사용 가능한 쿼리를 생성하는 핵심 부분은 WHERE 절에서 CASE 문을 필터로 활용하는 것이 될 것입니다.
CASE 문을 사용하면 원하는 데이터를 분류하고, 필요 없는 데이터를 제외할 수 있습니다. 이를 위해 WHERE 절에서 CASE 문을 필터로 사용하면 원하지 않는 결과를 출력에서 제거할 수 있습니다.
설정 방법은 다음과 같습니다:
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
즉, CASE 문을 데이터베이스의 다른 열과 마찬가지로 필터링 열로 사용할 수 있습니다. 유일한 차이점은 WHERE 절에서는 별칭을 붙이지 않는다는 점 입니다.
이 연습은 강의의 일부입니다
SQL 데이터 조작
연습 안내
WHERE절 안에서CASE문을 사용하여hometeam_id가9857이고 홈 득점이 원정 득점보다 많은 경우를 필터링하세요.WHERE절의CASE문을 사용하여awayteam_id가9857이고 원정 득점이 홈 득점보다 많은 경우를 필터링하세요.- Bologna가 승리하지 못한 경기를 제외하는 것으로
CASE문을 마무리하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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 ___;