Typeconversie met een CASE-clausule
Een van de parking_violation-attributen per record is de locatie van het voertuig ten opzichte van het adres van de overtreding. Een waarde 'F' in de kolom violation_in_front_of_or_opposite geeft aan dat het voertuig vóór het geregistreerde adres stond. Een waarde 'O' geeft aan dat het voertuig aan de overkant van de straat stond. De kolom gebruikt het type TEXT om de kolomwaarden weer te geven. Dezelfde informatie kan ook worden vastgelegd met een BOOLEAN-waarde (true/false), wat minder geheugen gebruikt.
In deze oefening zet je violation_in_front_of_or_opposite om naar een BOOLEAN-kolom met de naam is_violation_in_front met behulp van een CASE-clausule. Deze kolom is true voor records die vóór het geregistreerde adres plaatsvinden en false voor records die aan de overkant van het geregistreerde adres plaatsvinden.
Deze oefening maakt deel uit van de cursus
Data opschonen in PostgreSQL-databases
Oefeninstructies
- Voeg een case-voorwaarde toe die de waarde van
is_violation_in_frontoptruezet wanneer de waarde vanviolation_in_front_of_or_oppositegelijk is aan'F'voor het record. - Voeg een andere case-voorwaarde toe die de waarde van
is_violation_in_frontopfalsezet wanneer de waarde vanviolation_in_front_of_or_oppositegelijk is aan'O'voor het record.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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;