เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแปลงชนิดข้อมูลด้วยคลอส CASE

หนึ่งในแอตทริบิวต์ของ parking_violation ที่บันทึกไว้ในแต่ละระเบียนคือตำแหน่งของยานพาหนะเทียบกับที่อยู่ของการละเมิด ค่า 'F' ในคอลัมน์ violation_in_front_of_or_opposite หมายความว่ายานพาหนะอยู่ด้านหน้าของที่อยู่ที่บันทึกไว้ ส่วนค่า 'O' หมายความว่ายานพาหนะอยู่ฝั่งตรงข้ามของถนน คอลัมน์นี้ใช้ชนิดข้อมูล TEXT ในการแทนค่า ซึ่งสามารถแทนข้อมูลเดียวกันนี้ด้วยค่า BOOLEAN (true/false) ได้ โดยใช้หน่วยความจำน้อยกว่า

ในแบบฝึกหัดนี้ จะแปลง violation_in_front_of_or_opposite ให้เป็นคอลัมน์ BOOLEAN ชื่อ is_violation_in_front โดยใช้คลอส CASE คอลัมน์นี้จะมีค่าเป็น true สำหรับระเบียนที่เกิดขึ้นด้านหน้าของที่อยู่ที่บันทึกไว้ และเป็น false สำหรับระเบียนที่เกิดขึ้นฝั่งตรงข้าม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่มเงื่อนไข case ที่กำหนดค่า is_violation_in_front เป็น true เมื่อค่า violation_in_front_of_or_opposite ของระเบียนเท่ากับ 'F'
  • เพิ่มเงื่อนไข case อีกหนึ่งข้อที่กำหนดค่า is_violation_in_front เป็น false เมื่อค่า violation_in_front_of_or_opposite ของระเบียนเท่ากับ 'O'

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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;
แก้ไขและรันโค้ด