篩選你的 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 ___;