使用 CASE 子句進行型別轉換
每筆 parking_violation 紀錄都包含一個欄位,描述車輛相對於違規地址的位置。violation_in_front_of_or_opposite 欄位中的 'F' 代表車輛在該地址「前方」,'O' 代表車輛在道路「對面」。此欄位目前以 TEXT 型別儲存。不過,同樣的資訊也可以用 BOOLEAN(true/false)來表示,且更省記憶體。
在這個練習中,你會使用 CASE 子句,將 violation_in_front_of_or_opposite 轉換為名為 is_violation_in_front 的 BOOLEAN 欄位。當紀錄顯示車輛在該地址前方時,此欄位為 true;當車輛在該地址對面時,則為 false。
本練習屬於課程
清理 PostgreSQL 資料庫中的資料
練習說明
- 加入一個 case 條件:當紀錄中的
violation_in_front_of_or_opposite等於'F'時,將is_violation_in_front設為true。 - 再加入另一個 case 條件:當紀錄中的
violation_in_front_of_or_opposite等於'O'時,將is_violation_in_front設為false。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
SELECT
CASE WHEN
-- Use true when column value is 'F'
___ = ___ THEN ___
WHEN
-- Use false when column value is 'O'
___ = ___ THEN ___
ELSE
NULL
END AS ___
FROM
parking_violation;