创建一个内部有函数的视图

Creating a view with a function inside

我正在尝试创建一个内部有函数的视图。 当我想查看创建的视图时,我收到一条错误消息

1318 - Incorrect number of arguments for function ret_stat; expected 1, got 0

这是我的功能:

DELIMITER //
CREATE FUNCTION ret_stat (ret_stat CHAR (50))
RETURNS CHAR DETERMINISTIC
BEGIN
DECLARE result CHAR;
SET result = "";
SET result =
    CASE (result)
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) > 5 THEN '5 plus years'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) > 4 THEN '5 years left'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) > 3 THEN '4 years left'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) > 2 THEN '3 years left'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) > 1 THEN '2 years left'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) = 1 THEN '1 year left'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) = 0 THEN 'Soon retirement'
         WHEN (65-(YEAR(CURDATE()) - YEAR(bdate))) < 0 THEN 'Retired'
         END;
RETURN result;
END //
DELIMITER ;

...这是我对自己观点的查询:

 CREATE VIEW ret_stat_view AS
 SELECT fname, lname, faculty, ret_stat()
 FROM employees;

函数的参数需要是bdate作为日期,return值为TEXT,结果也是TEXT,CASE不需要任何参数。 ......它正常工作!

KAPOW 反对者! ★★★★★

Veni, vidi, solvī!