การทำความเข้าใจไวยากรณ์ SQL Case Expression: คู่มือที่ครบถ้วน

เมื่อทำงานกับฐานข้อมูล SQL หนึ่งในฟีเจอร์ที่สำคัญที่สามารถเพิ่มความสามารถในการจัดการข้อมูลของคุณได้อย่างมากคือ CASE expression โครงสร้างที่ทรงพลังนี้ช่วยให้คุณสามารถใส่ลอจิกเงื่อนไขโดยตรงในคำสั่ง SQL ของคุณได้ คล้ายกับลอจิก IF-THEN-ELSE ที่พบในภาษาการเขียนโปรแกรม บล็อกโพสต์นี้จะเจาะลึกในไวยากรณ์ที่ถูกต้องและสมบูรณ์สำหรับ SQL CASE expression ในแต่ละระบบฐานข้อมูล โดยเฉพาะ SQL Server

SQL CASE Expression คืออะไร?

CASE expression ทำหน้าที่เป็นคำสั่งเงื่อนไขที่ประเมินรายการเงื่อนไขและส่งคืนค่าตามเงื่อนไขแรกที่ประเมินเป็น TRUE การใช้งานหลักของมันประกอบไปด้วย:

  • ส่งคืนค่าที่เฉพาะเจาะจงตามการประเมินของคอลัมน์อื่นๆ
  • ทำให้สามารถสร้างคำถามที่ซับซ้อนได้ โดยการแทนที่หลายคำสั่ง IF ด้วยโครงสร้างที่สะอาดกว่าและอ่านง่ายกว่า

การทำความเข้าใจวิธีการจัดโครงสร้าง CASE expression อย่างถูกต้องสามารถป้องกันข้อผิดพลาดและทำให้คำถาม SQL ของคุณมีประสิทธิภาพมากขึ้นและดูแลรักษาง่ายขึ้น

ไวยากรณ์ของ CASE Expression สำหรับ SQL Server

ไวยากรณ์ของ CASE expression จะแตกต่างกันเล็กน้อยขึ้นอยู่กับเครื่องยนต์ฐานข้อมูล SQL ที่ใช้ ที่นี่เราจะเน้นไปที่ไวยากรณ์ที่ใช้กับ SQL Server มีรูปแบบหลัก ๆ ของ CASE expression สองแบบ:

1. คำสั่ง CASE ที่ง่าย

CASE case-expression
    WHEN when-expression-1 THEN value-1
    [ WHEN when-expression-n THEN value-n ... ]
    [ ELSE else-value ]
END
  • case-expression: นี่คือค่าที่กำลังถูกประเมิน
  • when-expression: นี้หมายถึงเงื่อนไขที่จะเปรียบเทียบกับ case-expression
  • value: ข้อมูลที่ส่งคืนเมื่อเงื่อนไขตรงตามที่กำหนด

2. คำสั่ง CASE ที่ค้นหา

CASE
    WHEN boolean-when-expression-1 THEN value-1
    [ WHEN boolean-when-expression-n THEN value-n ... ]
    [ ELSE else-value ]
END
  • boolean-when-expression: นี้จะประเมินเป็น TRUE หรือ FALSE และประเมินเงื่อนไขที่คุณกำหนด
  • value: คล้ายกับไวยากรณ์ก่อนหน้านี้ นี่คือข้อมูลที่ส่งคืนหากเงื่อนไขเป็น TRUE

องค์ประกอบสำคัญของ CASE Expression

การทำความเข้าใจส่วนประกอบของ CASE expression เป็นสิ่งสำคัญในการใช้งานอย่างมีประสิทธิภาพ นี่คือการแบ่งส่วน:

  • case-expression: ค่าที่ให้ผลลัพธ์ ตัวอย่างเช่น คอลัมน์ในตาราง
  • when-expression: นี้เปรียบเทียบกับคำสั่ง case; สามารถเกี่ยวข้องกับการเปรียบเทียบโดยตรงหรือรวมถึงลอจิก bool
  • value-x: ผลลัพธ์ที่ส่งคืนโดยคำสั่ง CASE เมื่อเงื่อนไขเป็นจริง
  • ELSE value: เป็นทางเลือก ที่ระบุว่าจะส่งคืนเมื่อไม่มีเงื่อนไข WHEN ถูกต้อง หากไม่ระบุ ผลลัพธ์จะถูกตั้งเป็น NULL

ตัวอย่างของ CASE Expression

นี่คือตัวอย่างที่ใช้ในการแบ่งประเภทข้อมูลในคำถาม SQL:

SELECT name,
       CASE grade
           WHEN 'A' THEN 'Excellent'
           WHEN 'B' THEN 'Good'
           WHEN 'C' THEN 'Average'
           ELSE 'Poor'
       END AS performance
FROM students;

ในคำถามนี้ นักเรียนจะถูกจัดประเภทตามเกรดของพวกเขา โดยมีเลเบลที่มีความหมายมากกว่าการให้เกรดเพียงตัวอักษร

ข้อพิจารณาที่สำคัญ

  1. ลำดับสำคัญ: ลำดับของคำสั่ง WHEN มีความสำคัญ หากมีเงื่อนไขหลายเงื่อนไขที่ตรงกัน เงื่อนไขแรกที่ตรงกันจะถูกใช้
  2. ไม่มีเงื่อนไขที่ตรงกัน: หากไม่มีคลอส ELSE และไม่มีเงื่อนไข WHEN ใด ๆ ที่ตรงกัน ผลลัพธ์จะส่งคืน NULL ซึ่งอาจส่งผลกระทบต่อการทำงานต่อไปหากไม่ได้รับการจัดการอย่างถูกต้อง

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ CASE expression ใน SQL Server คุณสามารถดูเอกสารอย่างเป็นทางการได้ที่ นี่.

สรุป

SQL CASE expression เป็นเครื่องมือที่ทรงพลังที่ช่วยเพิ่มประสิทธิภาพให้กับคำถาม SQL ของคุณ โดยอนุญาตให้ลอจิกเงื่อนไขสร้างผลลัพธ์ได้อย่างไร้รอยต่อ โดยการเข้าใจไวยากรณ์และการนำไปใช้ คุณจะสามารถเขียนคำถาม SQL ที่สะอาดและมีประสิทธิภาพกว่า ที่สามารถจัดการกับสถานการณ์ที่หลากหลาย ฝึกใช้งานมันในงาน SQL ของคุณทุกวันเพื่อดูความแตกต่างที่มันสามารถทำได้!