始める無料で始める

CASE 句での型変換

parking_violation レコードには、違反の住所に対して車両がどこにいたかを示す属性が含まれています。violation_in_front_of_or_opposite 列が 'F' の場合は記録された住所の前方、'O' の場合は通りの反対側を意味します。この列は値を表すのに TEXT 型を使用しています。同じ情報は、より少ないメモリで済む BOOLEANtrue/false)値でも表現できます。

この演習では、CASE 句を使って violation_in_front_of_or_oppositeis_violation_in_front という名前の BOOLEAN 列に変換します。記録された住所の前方で発生したレコードではこの列は true、反対側で発生したレコードでは false になります。

この演習はコースの一部です

PostgreSQLデータベースで学ぶデータクレンジング

コースを見る

演習の手順

  • レコードの violation_in_front_of_or_opposite の値が 'F' と等しいとき、is_violation_in_front の値を true に設定するケース条件を 1 つ含めてください。
  • レコードの violation_in_front_of_or_opposite の値が 'O' と等しいとき、is_violation_in_front の値を false に設定する別のケース条件を含めてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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;
コードを編集して実行