การกรองข้อมูลด้วย CASE statement
มาสร้างรายการแมตช์ที่ทีม Bologna ของอิตาลีชนะกัน! เนื่องจากมีทีมอื่นอีกมากในสองตารางนี้ กุญแจสำคัญของการเขียนคิวรีที่ใช้งานได้จริงคือการนำ CASE statement มาใช้เป็นตัวกรองใน WHERE clause
CASE statement ช่วยให้จัดหมวดหมู่ข้อมูลที่ต้องการได้ พร้อมกับกรองข้อมูลที่ไม่ต้องการออกไปด้วย โดยนำ CASE statement มาใช้เป็นเงื่อนไขใน WHERE เพื่อตัดผลลัพธ์ที่ไม่ต้องการออก
ตัวอย่างการตั้งค่ามีดังนี้:
SELECT *
FROM table
WHERE
CASE WHEN a > 5 THEN 'Keep'
WHEN a <= 5 THEN 'Exclude' END = 'Keep';
โดยพื้นฐานแล้ว สามารถใช้ CASE statement เป็นคอลัมน์สำหรับกรองข้อมูลได้เหมือนคอลัมน์ทั่วไปในฐานข้อมูล ข้อแตกต่างเพียงอย่างเดียวคือ ไม่ต้อง ตั้งชื่อ alias ให้กับ statement ใน WHERE
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน SQL
คำแนะนำการฝึกหัด
- ใช้
CASEstatement ในWHEREclause เพื่อกรองเฉพาะแมตช์ที่hometeam_idเป็น9857และประตูเจ้าบ้านมากกว่าประตูทีมเยือน - ใช้
CASEstatement ในWHEREclause เพื่อกรองเฉพาะแมตช์ที่awayteam_idเป็น9857และประตูทีมเยือนมากกว่าประตูเจ้าบ้าน - ปิด
CASEstatement โดยกรองแมตช์ที่ Bologna ไม่ได้ ชนะออกไป
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
season,
date,
home_goal,
away_goal
FROM matches_italy
WHERE
-- Find games where home_goal is more than away_goal
___ ___ hometeam_id = 9857 ___ home_goal ___ away_goal ___ 'Bologna Win'
-- Find games where away_goal is more than home_goal
___ awayteam_id = 9857 ___ away_goal ___ home_goal ___ 'Bologna Win'
-- Exclude games not won by Bologna
___ IS NOT ___;