คำชี้แจงกรณี Oracle PL / SQL

Kha Chicaeng Krni Oracle Pl Sql



โฟลว์การควบคุมเป็นหนึ่งในองค์ประกอบหลักในการเขียนโปรแกรม มันกำหนดลำดับที่บล็อกโค้ดต่างๆ ถูกดำเนินการในโปรแกรม

เช่นเดียวกับภาษาการเขียนโปรแกรมส่วนใหญ่ ภาษา Oracle PL/SQL มีคำสั่งโฟลว์การควบคุมต่างๆ เช่น IF-THEN, CASE, FOR, WHILE เป็นต้น







ในโพสต์นี้ เราจะเรียนรู้วิธีการทำงานกับคำสั่ง CASE ใน PL/SQL เพื่อแนะนำโฟลว์การควบคุมในแบบสอบถาม Oracle ของเรา



บทนำสู่คำสั่ง CASE

คำสั่ง CASE ให้คุณกำหนดลำดับของคำสั่ง จากนั้นคำสั่ง case จะเลือกหนึ่งลำดับเพื่อดำเนินการตามเงื่อนไขที่ระบุ



ให้คิดว่ามันเป็นวิธีที่มีประสิทธิภาพมากกว่าในการประกาศชุดของบล็อก if-then ในขณะที่คงความสามารถในการอ่าน





เราสามารถแสดงไวยากรณ์ของคำสั่ง CASE ใน Oracle ได้ดังที่แสดงต่อไปนี้:

กรณี
เมื่อเงื่อนไข 1 แล้วผลลัพธ์ 1
เมื่อเงื่อนไข 2 แล้วผลลัพธ์ 2
...
ผลลัพธ์อื่น
จบ

คำสั่ง CASE จะประเมินแต่ละเงื่อนไขในคำสั่ง WHEN ในไวยากรณ์นี้



หากคำสั่งพบคำสั่งที่ตรงกัน ระบบจะส่งกลับผลลัพธ์ที่ตรงกัน อย่างไรก็ตาม ในบางกรณี คำชี้แจงกรณีและปัญหาอาจไม่พบเงื่อนไขที่ตรงกัน ในสถานการณ์ดังกล่าว คำสั่งจะดำเนินการตามผลลัพธ์ที่กำหนดไว้ในบล็อก ELSE

บันทึก : บล็อก ELSE เป็นตัวเลือก หากไม่พร้อมใช้งาน โปรแกรมฐานข้อมูลจะใช้ไวยากรณ์ต่อไปนี้:

อื่น:
ยกกรณี_NOT_FOUND;

ซึ่งช่วยให้กลไกฐานข้อมูลเพิ่มข้อยกเว้นและหยุดการดำเนินการชั่วคราวเมื่อไม่มีเงื่อนไขที่ตรงกัน

ตัวอย่างที่ 1: ตัวอย่างพื้นฐานของคำสั่ง CASE

ตัวอย่างนี้แสดงตัวอย่างการใช้งานพื้นฐานของตัวดำเนินการเคสใน Oracle:

ประกาศ
หมายเลขอายุ
ถ่านรายการ (10);
เริ่ม
อายุ := 24;
อายุคดี
เมื่อ17แล้ว
รายการ := 'ปฏิเสธ';
เมื่อ24แล้ว
รายการ := '9.99';
เมื่อ45แล้ว
รายการ :='15.99';
อื่น
รายการ := 'ไม่อนุญาต';
กรณีสิ้นสุด;
DBMS_OUTPUT.PUT_LINE (รายการ);
จบ;

ภาพประกอบที่ให้มาควรทดสอบเงื่อนไขที่ตรงกันและส่งกลับสถานะที่สอดคล้องกัน ตัวอย่างเช่น เนื่องจากเงื่อนไขการจับคู่คือ 24 ส่วนคำสั่งจะส่งกลับดังนี้:

9.99

ตัวอย่างที่ 2: คำสั่ง CASE กับตารางฐานข้อมูล

ตัวอย่างนี้ใช้ case statement กับตารางฐานข้อมูล

เลือก first_name, last_name, เงินเดือน,
กรณี
เมื่อเงินเดือน 2500 แล้ว 'สูง'
อื่น ๆ 'ไม่ทราบ'
สิ้นสุดเป็นเงินเดือน_สถานะ
จากพนักงาน;

ข้อความค้นหาที่ให้มาจะใช้คำสั่งกรณีและปัญหาเพื่อทดสอบช่วงเงินเดือนจากตารางของพนักงาน

ค่าที่ได้จะแสดงดังต่อไปนี้:

บทสรุป

ในโพสต์นี้ คุณได้เรียนรู้วิธีใช้ Oracle case statement เพื่อทดสอบเงื่อนไขต่างๆ และดำเนินการหากเงื่อนไขหนึ่งเป็นจริง