![]() |
|
คำสั่ง Caseคำสั่ง Case เป็นการสร้างการคำนวณในการสร้างนิพจน์เงื่อนไขซึ่งสามารถให้ผลลัพธ์ที่แตกต่างกันสำหรับค่าในคอลัมน์ที่แตกต่างกัน Case (Switch)คำสั่ง Case ในรูปแบบนี้เรียกอีกอย่างหนึ่งว่า รูปแบบ CASE (LookUp) ค่าของ นิพจน์1 จะถูกตรวจสอบแล้วตามด้วยนิพจน์ WHEN หาก นิพจน์1 ตรงกับนิพจน์ WHEN ใดๆ คำสั่งนี้จะกำหนดค่าในนิพจน์ THEN ที่สอดคล้องกันให้ หาก นิพจน์1 ตรงกับนิพจน์ใน WHEN clause มากกว่าหนึ่งรายการ จะกำหนดค่าให้เฉพาะนิพจน์จากเงื่อนไขแรกที่ตรงกันเท่านั้น หากไม่ตรงกับ WHEN นิพจน์ใดๆ คำสั่งนี้จะกำหนดค่าที่ระบุใน ELSE นิพจน์ให้ หากไม่มีการระบุ ELSE นิพจน์ไว้ คำสั่งนี้จะกำหนดค่า NULL ให้ โปรดดูเพิ่มเติมที่คำสั่ง Case (If) Syntax: CASE นิพจน์1 WHEN นิพจน์ THEN นิพจน์ {WHEN นิพจน์... THEN นิพจน์ ...} นิพจน์ ELSE END โดยที่: CASE เริ่มต้นคำสั่ง CASE ต้องตามด้วยนิพจน์และคำสั่ง WHEN และ THEN อย่างน้อยหนึ่งคำสั่ง อาจมีหรือไม่มีคำสั่ง ELSE และตามด้วยคำสำคัญ END WHEN ระบุเงื่อนไขที่ต้องทำตาม THEN ระบุค่าที่จะกำหนดให้เมื่อตรงตามเงื่อนไขในนิพจน์ WHEN ที่สอดคล้องกัน ELSE ระบุค่าที่จะกำหนดให้หากไม่ตรงตามเงื่อนไข WHEN หากไม่ระบุจะถือว่าเป็น ELSE NULL END จบคำสั่ง CASE ตัวอย่าง CASE Score-par WHEN -5 THEN 'เบอร์ดี้ในพาร์ 6' WHEN -4 THEN 'ต้องเป็นไทเกอร์' WHEN -3 THEN 'สามต่ำกว่าพาร์' WHEN -2 THEN 'สองต่ำกว่าพาร์' WHEN -1 THEN 'เบอร์ดี้' WHEN 0 THEN 'พาร์' WHEN 1 THEN 'โบกี้' WHEN 2 THEN 'ดับเบิ้ลโบกี้' ELSE 'ทริปเปิ้ลโบกี้หรือแย่กว่า' END ในตัวอย่างด้านบน คำสั่ง WHEN ต้องระบุค่าที่เท่ากันทั้งหมดเท่านั้น เงื่อนไข WHEN เช่น WHEN < 0 THEN 'ต่ำกว่าพาร์' ไม่สามารถใช้ได้เนื่องจากไม่อนุญาตให้ใช้ตัวเครื่องหมายการเปรียบเทียบ Case (If)คำสั่ง Case ในรูปแบบนี้จะประเมินเงื่อนไข WHEN แต่ละเงื่อนไข และหากตรงตามเงื่อนไข ก็จะกำหนดค่าในนิพจน์ THEN ที่สอดคล้องกัน หากไม่ตรงตามเงื่อนไข WHEN ใดๆ คำสั่งนี้จะกำหนดค่าดีฟอลต์ที่ระบุในนิพจน์ ELSE ให้ หากไม่มีการระบุนิพจน์ ELSE ไว้ คำสั่งนี้จะกำหนดค่า NULL ให้ โปรดดูเพิ่มเติมที่คำสั่ง Case (Switch) Syntax: CASE WHEN request_condition1 THEN นิพจน์1 {WHEN request_condition2 THEN นิพจน์2} {WHEN request_condition... THEN นิพจน์...} นิพจน์ ELSE END โดยที่: CASE เริ่มต้นคำสั่ง CASE ต้องตามด้วยคำสั่ง WHEN และ THEN อย่างน้อยหนึ่งคำสั่ง อาจมีหรือไม่มีคำสั่ง ELSE และตามด้วยคำสำคัญ END WHEN ระบุเงื่อนไขที่ต้องทำตาม THEN ค่าที่จะกำหนดให้เมื่อตรงตามเงื่อนไขในนิพจน์ WHEN ที่สอดคล้องกัน ELSE ระบุค่าหากไม่ตรงตามเงื่อนไข WHEN ใดๆ หากไม่ระบุจะถือว่าเป็น ELSE NULL END จบคำสั่ง CASE ตัวอย่าง CASE WHEN score-par < 0 THEN 'ต่ำกว่าพาร์' WHEN score-par = 0 THEN 'พาร์' WHEN score-par = 1 THEN 'โบกี้' WHEN score-par = 2 THEN 'ดับเบิ้ลโบกี้' ELSE 'ทริปเปิ้ลโบกี้หรือแย่กว่า' END สิ่งที่แตกต่างจากคำสั่ง CASE รูปแบบ Switch คือ คำสั่ง WHEN ในรูปแบบ If อนุญาตให้ใช้เครื่องหมายการเปรียบเทียบได้ ดังนั้นเงื่อนไข WHEN อย่างเช่น WHEN < 0 THEN 'ต่ำกว่าพาร์' สามารถใช้ได้ |
สิงหาคม 2018 | ลิขสิทธิ์ © 2005, 2018, Oracle สงวนลิขสิทธ Legal Notices. |