Конец, если не конец, и каждое утверждение должно быть прекращено
П.Салмон уже прокомментировал, когда я делал ответ на него.
DELIMITER $$
CREATE FUNCTION
# best to prefix with in_ so MySQL and you cant mix it up with existing columns
salarystatus (in_employee_id INTEGER)
RETURNS VARCHAR(25)
BEGIN
DECLARE isalary DECIMAL(8,2) DEFAULT NULL; # <- best to have a default value
DECLARE istatus varchar(25) DEFAULT NULL; # <- best to have a default value
SELECT salary
INTO isalary
FROM employees
WHERE employee_id = in_employee_id.employee_id; #<- use the function in param
IF (isalary < 50000) then
SET istatus = 'low income';
ELSEIF (50000 <= isalary < 80000) then
SET istatus = 'medium income';
ELSE
SET istatus = 'high income';
END IF; # <- semicon (;) missing in your query also ENDIF isnt valid syntax.
RETURN istatus;
END
DELIMITER ;
Также я удаляю DETERMINISTIC
, потому что это действительно не нужно.