Konwersja typów za pomocą klauzuli CASE
Jednym z atrybutów tabeli parking_violation jest lokalizacja pojazdu względem adresu, pod którym wystawiono mandat. Wartość 'F' w kolumnie violation_in_front_of_or_opposite oznacza, że pojazd stał przed danym adresem. Wartość 'O' oznacza, że stał po przeciwnej stronie ulicy. Kolumna używa typu TEXT do przechowywania tych danych. Te same informacje można zapisać jako wartość BOOLEAN (true/false), która zajmuje mniej pamięci.
W tym ćwiczeniu przekształcisz kolumnę violation_in_front_of_or_opposite na kolumnę BOOLEAN o nazwie is_violation_in_front, używając klauzuli CASE. Kolumna przyjmuje wartość true dla rekordów dotyczących pojazdów stojących przed danym adresem, a false dla tych stojących po przeciwnej stronie ulicy.
To ćwiczenie jest częścią kursu
Czyszczenie danych w bazach PostgreSQL
Instrukcje do ćwiczenia
- Dodaj warunek
CASE, który ustawia wartośćis_violation_in_frontnatrue, gdy wartośćviolation_in_front_of_or_oppositedla danego rekordu jest równa'F'. - Dodaj kolejny warunek
CASE, który ustawia wartośćis_violation_in_frontnafalse, gdy wartośćviolation_in_front_of_or_oppositedla danego rekordu jest równa'O'.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;