LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Füge eine CASE-Bedingung hinzu, die den Wert von is_violation_in_front auf true setzt, wenn der Wert von violation_in_front_of_or_opposite für den Datensatz gleich 'F' ist.
  • Füge eine weitere CASE-Bedingung hinzu, die den Wert von is_violation_in_front auf false setzt, wenn der Wert von violation_in_front_of_or_opposite fü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;
Code bearbeiten und ausführen