開始使用免費開始

篩選你的 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 ___;
編輯並執行程式碼