创建一个 MySQL 过程来声明一个游标来选择姓氏、名字 EMPLOYEE 表中的姓名、工资和雇用日期。检索每一行 如果员工的信息是从光标处开始,则打印该员工的信息 工资超过 50,000 美元且雇用日期在 1997 年 12 月 31 日之前 (显式游标问题)。 这是我正在为其创建程序的问题陈述,但是我在
loop:
附近收到一条错误消息。我无法理解错误的确切原因。这是代码:
DELIMITER //
CREATE PROCEDURE GetHighEarnersBefore1998(IN salary_threshold DECIMAL(10,2))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE emp_last_name VARCHAR(50);
DECLARE emp_first_name VARCHAR(50);
DECLARE emp_salary DECIMAL(10,2);
DECLARE emp_hire_date DATE;
DECLARE emp_cursor CURSOR FOR SELECT last_name, first_name, salary, hire_date FROM EMPLOYEE;
OPEN emp_cursor;
loop:
FETCH emp_cursor INTO emp_last_name, emp_first_name, emp_salary, emp_hire_date;
SET done = CURSOR_ROWCOUNT = 0;
IF emp_salary > salary_threshold AND emp_hire_date < '1997-12-31' THEN
SET done = TRUE;
SELECT CONCAT(emp_last_name, ', ', emp_first_name), emp_salary, emp_hire_date;
END IF;
LEAVE loop WHEN done;
END LOOP;
CLOSE emp_cursor;
END //
DELIMITER ;
需要手续吗? 简单查询无法解决?
SELECT
last_name,
first_name,
salary,
hire_date
FROM EMPLOYEE
WHERE
salary > @salary_threshold
AND hire_date < DATE(@limit_date)