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
<Kurs>Datenbereinigung in PostgreSQL-Datenbanken</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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;