시작하기무료로 시작하기

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_id9857이고 홈 득점이 원정 득점보다 많은 경우를 필터링하세요.
  • WHERE 절의 CASE 문을 사용하여 awayteam_id9857이고 원정 득점이 홈 득점보다 많은 경우를 필터링하세요.
  • 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 ___;
코드 편집 및 실행