开始使用免费开始使用

筛选您的 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 且客队进球数大于主队进球数的比赛。
  • 结束 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 ___;
编辑并运行代码