CASE 句での型変換
各 parking_violation レコードには、違反の住所に対して車両がどこにいたかを示す属性が含まれています。violation_in_front_of_or_opposite 列が 'F' の場合は記録された住所の前方、'O' の場合は通りの反対側を意味します。この列は値を表すのに TEXT 型を使用しています。同じ情報は、より少ないメモリで済む BOOLEAN(true/false)値でも表現できます。
この演習では、CASE 句を使って violation_in_front_of_or_opposite を is_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;