Преобразование типов с помощью выражения CASE
Одним из атрибутов записи parking_violation является расположение транспортного средства относительно адреса, по которому зафиксировано нарушение. Значение 'F' в столбце violation_in_front_of_or_opposite означает, что автомобиль находился перед указанным адресом, а значение 'O' — что на противоположной стороне улицы. Для хранения этих значений используется тип TEXT. Ту же информацию можно представить с помощью типа BOOLEAN (true/false), который занимает меньше памяти.
В этом упражнении вы преобразуете столбец violation_in_front_of_or_opposite в столбец типа BOOLEAN с именем is_violation_in_front, используя выражение CASE. Столбец принимает значение true для записей, в которых нарушение зафиксировано перед указанным адресом, и false — для записей, где транспортное средство находилось на противоположной стороне улицы.
Это упражнение является частью курса
Очистка данных в базах данных PostgreSQL
Инструкции к упражнению
- Добавьте одно условие в выражение
CASE, которое присваивает столбцуis_violation_in_frontзначениеtrue, еслиviolation_in_front_of_or_oppositeравно'F'. - Добавьте ещё одно условие, которое присваивает столбцу
is_violation_in_frontзначениеfalse, еслиviolation_in_front_of_or_oppositeравно'O'.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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;