我试图在mysql中定义以下函数,但它给了我一个错误
DELIMITER //
CREATE FUNCTION salario_maximo(dep INT)
RETURNS FLOAT
BEGIN
DECLARE msalario FLOAT;
DECLARE dpto INT;
SELECT COUNT(*) INTO dpto FROM departamentos WHERE DEPT_NO=dep;
IF(SELECT COUNT(*) FROM departamentos WHERE DEPT_NO=dep>0)
BEGIN
IF(SELECT COUNT(*) FROM empleados WHERE DEPT_NO=dep>0)
BEGIN
SELECT max(salario) INTO msalario from empleados where dept_no=dep;
END
ELSE
BEGIN
SET msalario = 0;
END
END
ELSE
BEGIN
SET msalario = -1;
END
RETURN msalario;
END; //
DELIMITER ;
我的错误是:
1064 -算法在第8行中的“开始IF(SELECT COUNT(*)FROM WHERE DEPT_NO=dep 0〉0”的定义中存在歧义
我需要帮助!谢谢!
1条答案
按热度按时间bfnvny8b1#
这里有几样东西。
首先,在if条件之后需要一个“THEN”。
其次,需要使用END IF语句关闭IF ELSE块。
此外,请在END陈述式后面加上分号。
试试这个: