筛选您的 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且客队进球数大于主队进球数的比赛。 - 结束
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 ___;