การทำความเข้าใจไวยากรณ์ 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;
ในคำถามนี้ นักเรียนจะถูกจัดประเภทตามเกรดของพวกเขา โดยมีเลเบลที่มีความหมายมากกว่าการให้เกรดเพียงตัวอักษร
ข้อพิจารณาที่สำคัญ
- ลำดับสำคัญ: ลำดับของคำสั่ง
WHEN
มีความสำคัญ หากมีเงื่อนไขหลายเงื่อนไขที่ตรงกัน เงื่อนไขแรกที่ตรงกันจะถูกใช้ - ไม่มีเงื่อนไขที่ตรงกัน: หากไม่มีคลอส
ELSE
และไม่มีเงื่อนไขWHEN
ใด ๆ ที่ตรงกัน ผลลัพธ์จะส่งคืน NULL ซึ่งอาจส่งผลกระทบต่อการทำงานต่อไปหากไม่ได้รับการจัดการอย่างถูกต้อง
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ CASE
expression ใน SQL Server คุณสามารถดูเอกสารอย่างเป็นทางการได้ที่ นี่.
สรุป
SQL CASE
expression เป็นเครื่องมือที่ทรงพลังที่ช่วยเพิ่มประสิทธิภาพให้กับคำถาม SQL ของคุณ โดยอนุญาตให้ลอจิกเงื่อนไขสร้างผลลัพธ์ได้อย่างไร้รอยต่อ โดยการเข้าใจไวยากรณ์และการนำไปใช้ คุณจะสามารถเขียนคำถาม SQL ที่สะอาดและมีประสิทธิภาพกว่า ที่สามารถจัดการกับสถานการณ์ที่หลากหลาย ฝึกใช้งานมันในงาน SQL ของคุณทุกวันเพื่อดูความแตกต่างที่มันสามารถทำได้!