CASE...WHEN
語句在 SQL 存儲過程中的應用主要是用于根據特定條件執行不同的操作或返回不同的值
以下是一個簡單的示例,展示了如何在存儲過程中使用 CASE...WHEN
語句:
DELIMITER //
CREATE PROCEDURE GetEmployeeStatus(IN emp_id INT)
BEGIN
DECLARE emp_status VARCHAR(50);
SELECT
CASE
WHEN status = 'active' THEN 'Employee is active'
WHEN status = 'inactive' THEN 'Employee is inactive'
ELSE 'Employee status is unknown'
END AS emp_status
INTO emp_status
FROM employees
WHERE id = emp_id;
SELECT emp_status;
END //
DELIMITER ;
在這個示例中,我們創建了一個名為 GetEmployeeStatus
的存儲過程,該過程接受一個輸入參數 emp_id
。然后,我們使用 CASE...WHEN
語句根據員工的狀態(active
或 inactive
)返回相應的消息。最后,我們將結果存儲在 emp_status
變量中并返回。
要調用此存儲過程,可以使用以下命令:
CALL GetEmployeeStatus(1);
這將返回員工 ID 為 1 的員工狀態。