创建一个存储过程根据给定的医生编号计算医生工龄若工龄在10到30之间输出中堅力量,若工龄在30年以上输出定海神针,调用说存储过程造回医生信息
时间: 2024-12-19 16:28:23 浏览: 6
在SQL中,我们可以创建一个存储过程来满足这种需求。假设有一个名为`doctors`的表,包含`id`, `hired_date`等字段,你可以编写如下的存储过程:
```sql
DELIMITER //
CREATE PROCEDURE CalculateDoctorExperience(IN doctor_id INT)
BEGIN
DECLARE experience VARCHAR(20);
SET experience = '';
SELECT
TIMESTAMPDIFF(YEAR, hired_date, CURRENT_DATE) AS years_of_experience
INTO experience
FROM doctors
WHERE id = doctor_id;
IF experience >= 10 AND experience <= 30 THEN
SET experience = '中坚力量';
ELSEIF experience > 30 THEN
SET experience = '定海神针';
END IF;
SELECT CONCAT('医生ID:', doctor_id, ', 工龄:', experience);
END;;
DELIMITER ;
-- 调用存储过程
CALL CalculateDoctorExperience(12345); -- 输入医生编号12345
```
这个存储过程接受医生编号,计算其工龄,并根据条件输出相应的称呼。当工龄在10至30年之间,结果为"中坚力量";超过30年则显示为"定海神针"。
阅读全文