Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj warunek CASE, który ustawia wartość is_violation_in_front na true, gdy wartość violation_in_front_of_or_opposite dla danego rekordu jest równa 'F'.
  • Dodaj kolejny warunek CASE, który ustawia wartość is_violation_in_front na false, gdy wartość violation_in_front_of_or_opposite dla 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;
Edytuj i uruchom kod