Перетворення типів за допомогою розділу 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'. - Додайте іншу умову case, яка встановлює значення
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;