CREATE FUNCTION salarystatus(employee_id integer) RETURNS VARCHAR(25)
DETERMINISTIC
BEGIN

   DECLARE isalary DECIMAL(8,2);
   DECLARE istatus varchar(25);

        SELECT salary INTO isalary
        FROM employees
        WHERE employee_id = salarystatus.employee_id;

    IF (isalary < 50000) then
        SET istatus = 'low income';
    ELSEIF (50000 <= isalary < 80000) then
        SET istatus = 'medium income';
    ELSE
        SET istatus = 'high income';
    ENDIF

    RETURN istatus

END


返回此错误:


  1064-您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册,以在'RETURN istatus附近使用正确的语法
  
  在第20行结束


此查询看起来正确,这里的语法错误是什么?

最佳答案

问题是我写了ENDIF而不是“ END IF”

最后还要添加此内容。

$$
定界符;

关于mysql - SQL存储函数问题,返回错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55834775/

10-10 17:15