Typumwandlung mit einer CASE-Klausel
Eines der Attribute von parking_violation, das für jeden Datensatz enthalten ist, beschreibt die Position des Fahrzeugs in Bezug auf die Hausadresse des Verstoßes. Ein 'F'-Wert in der Spalte violation_in_front_of_or_opposite zeigt an, dass sich das Fahrzeug vor der erfassten Adresse befand. Ein 'O'-Wert zeigt an, dass sich das Fahrzeug auf der gegenüberliegenden Straßenseite befand. Die Spalte verwendet den Typ TEXT, um die Werte darzustellen. Dieselbe Information ließe sich auch mit einem BOOLEAN-Wert (true/false) abbilden, der weniger Speicher benötigt.
In dieser Übung wandelst du violation_in_front_of_or_opposite mithilfe einer CASE-Klausel in eine BOOLEAN-Spalte namens is_violation_in_front um. Diese Spalte ist true für Datensätze, die vor der erfassten Adresse auftreten, und false für Datensätze, die gegenüber der erfassten Adresse auftreten.
Diese Übung ist Teil des Kurses
Datenbereinigung in PostgreSQL-Datenbanken
Anleitung zur Übung
- Füge eine CASE-Bedingung hinzu, die den Wert von
is_violation_in_frontauftruesetzt, wenn der Wert vonviolation_in_front_of_or_oppositefür den Datensatz gleich'F'ist. - Füge eine weitere CASE-Bedingung hinzu, die den Wert von
is_violation_in_frontauffalsesetzt, wenn der Wert vonviolation_in_front_of_or_oppositefür den Datensatz gleich'O'ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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;