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 的员工状态。