我想要列的最小值

raogr8fs  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(549)

我不知道为什么我有语法错误。我需要从empleados得到salario列的最小编号。我每行注解一行,错误出现在屏幕上
错误语法图像
请帮忙,谢谢

DELIMITER $$

DROP FUNCTION IF EXISTS `empresa`.`Minim` $$
CREATE FUNCTION `empresa`.`Minim` () RETURNS INT
BEGIN

declare numregs int;
declare i int default 0;
declare v_minim int default 0;
declare v_salario int default 0;

declare cminim cursor for select salario from empleados;

select count(*) into numregs from empleados;

open cminim;

while i<numregs do
  fetch cminim into v_salario;
  if i=0 then
    v_minim=v_salario;
  end if;
  if i>0 and v_salario<v_minim then
      v_minim=v_salario;
  end if;
  i=i+1;
end while;

return v_minim;

close cminim;

END $$

DELIMITER ;
fcg9iug3

fcg9iug31#


这个错误已经清楚地表现出来了,原因是当你给变量赋值时,你错过了关键工作 set .
你需要使用 set 要赋值的关键字

while i<numregs do
  fetch cminim into v_salario;
  if i=0 then
    set v_minim=v_salario; -- use set
  end if;
  if i>0 and v_salario<v_minim then
      set v_minim=v_salario;
  end if;
  set i=i+1;
end while;

相关问题