使用 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 数据库中清理数据
练习说明
- 添加一个条件:当记录的
violation_in_front_of_or_opposite值等于'F'时,将is_violation_in_front的值设为true。 - 再添加一个条件:当记录的
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;