ตอนที่ 10 : การใช้ CASE WHEN บน Stored Procedure (MySQL : Stored Procedure)
ตอนที่ 10 : การใช้ CASE WHEN บน Stored Procedure (MySQL : Stored Procedure) ในหัวข้อนี้เราจะมาเรียนรู้การใช้งาน CASE WHEN บน MySQL Stored Procedure เพราะคำสั่งนี้เป็นการสร้างเงื่อนไขในการทำงานที่ได้ค่ามาจาก Parameters และ Variable มรีูปแบบการใช้งานเหมือนกับ IF และมันค่อนข้างจะมีความจำเป็นและสำคัญมากในการเขียน Stored และ สามารถนำคำสั่ง CASE WHEN ไปประยุกต์การใช้งานได้หลากหลายในทุก ๆ ส่วนของการเขียน Stored Procedure
โครงสร้างของตาราง customer และ country
Table : customer
Table : country
CASE WHEN Syntax
CASE case_expression
WHEN expression_1 THEN
# Statement 1
WHEN expression_2 THEN
# Statement 2
ELSE
# Statement 3
END CASE;
Example : ตัวอย่างการใช้ CASE WHEN ในรูปแบบที่ง่าย ๆ บน MySQL Store Procedure
DROP PROCEDURE IF EXISTS getCustomer;
DELIMITER //
CREATE PROCEDURE getCustomer(IN pType VARCHAR(1))
BEGIN
CASE pType
WHEN "1" THEN
SELECT A.CUSTOMER_ID, A.NAME, A.EMAIL, B.COUNTRY_NAME FROM customer A
LEFT JOIN country B ON A.COUNTRY_CODE = B.COUNTRY_CODE
WHERE A.COUNTRY_CODE = 'TH';
WHEN "2" THEN
SELECT A.CUSTOMER_ID, A.NAME, A.EMAIL, B.COUNTRY_NAME FROM customer A
LEFT JOIN country B ON A.COUNTRY_CODE = B.COUNTRY_CODE
WHERE A.COUNTRY_CODE = 'US';
ELSE
SELECT A.CUSTOMER_ID, A.NAME, A.EMAIL, B.COUNTRY_NAME FROM customer A
LEFT JOIN country B ON A.COUNTRY_CODE = B.COUNTRY_CODE
WHERE A.COUNTRY_CODE = 'UK';
END CASE;
END //
DELIMITER ;