创建一个内部有函数的视图
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ī!
我正在尝试创建一个内部有函数的视图。 当我想查看创建的视图时,我收到一条错误消息
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ī!