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

การกรองข้อมูลด้วย 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

ดูคอร์ส

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

  • ใช้ CASE statement ใน WHERE clause เพื่อกรองเฉพาะแมตช์ที่ hometeam_id เป็น 9857 และประตูเจ้าบ้านมากกว่าประตูทีมเยือน
  • ใช้ CASE statement ใน WHERE clause เพื่อกรองเฉพาะแมตช์ที่ awayteam_id เป็น 9857 และประตูทีมเยือนมากกว่าประตูเจ้าบ้าน
  • ปิด CASE statement โดยกรองแมตช์ที่ 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 ___;
แก้ไขและรันโค้ด